python初学者爬知乎时遇到的有关登陆的问题

发布于 2022-09-01 06:37:31 字数 1011 浏览 13 评论 0

登陆的时候post了登陆信息,但是还是无法获取到登陆后的网页,只有在电脑浏览器上先登陆上,python程序才能获取到登陆后的页面。
这是不是因为验证码的原因?是不是可以通过cookies绕过验证码?
代码如下:

pythonimport requests

header = {
    'User-Agent': "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0",
    'Host': "www.zhihu.com",
    'Referer': "http://www.zhihu.com/",
    'X-Requested-With': "XMLHttpRequest"
}
payload = {
'email': "xxxxxxxxxxxx",
'password': "xxxxxxxxxx",
'rememberme': 'y',
}
s = requests.session()
r = s.post('http://www.zhihu.com/login', data = payload, headers = header)
print r.text
rr = s.get('http://zhihu.com/login', headers = header)
zhihu_home_page = rr.text
print zhihu_home_page

登陆成功

登陆失败

此外,分别是登陆成功和登陆失败后,POST 返回的 r.text 数据,这是什么意思啊……
大神求解救,这几天我就纠结这个问题了……

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ˇ宁静的妩媚 2022-09-08 06:37:31

如果只是临时一次性抓取的话,可以手工打开浏览器登录,然后取cookies,复制到程序里去请求,user-agent最好跟你浏览器里的一致。

如果是在线实时抓取的话,必须突破验证码,这个难度大,没有试验过。或许有一些现成的库可以破解掉一些简单的验证码。

給妳壹絲溫柔 2022-09-08 06:37:31

需要输入验证码。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文