怎样用Python设计一个爬虫模拟登陆知乎 200

 我来答
就烦条0o
2017-08-26 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46493
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
知乎现在登录貌似每次都会有密码了,修改如下:
import requests
from xtls.util import BeautifulSoup
INDEX_URL = 'xxx
LOGIN_URL = 'xxx'
CAPTCHA_URL = 'xxx'
def gen_time_stamp():
return str(int(time.time())) + '%03d' % random.randint(0, 999)
def login(username, password, oncaptcha):
session = requests.session()
_xsrf = BeautifulSoup(session.get(INDEX_URL).content).find('input', attrs={'name': '_xsrf'})['value']
data = {
'_xsrf': _xsrf,
'email': username,
'password': password,
'remember_me': 'true',
'captcha': oncaptcha(session.get(CAPTCHA_URL + gen_time_stamp()).content)
}
resp = session.post(LOGIN_URL, data)
if 2 != resp.status_code / 100 or u"登陆成功" not in resp.content:
raise Exception('captcha error.')
return session
其中,oncaptcha为一个回调函数(需要自己实现的),接受的参数为验证码的二进制内容,返回的为验证码内容。
P.S.你可以自己做识别验证码,或者手动输入,其中最简单的oncaptcha为:
def oncaptcha(data):
with open('captcha file save path', 'wb') as fp:
fp.write(data)
return raw_input('captcha : ')
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
执笔染红颜担
2017-08-20 · TA获得超过149个赞
知道答主
回答量:93
采纳率:0%
帮助的人:13.3万
展开全部
还是比较难设计的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式