python2.7 - python初学者爬知乎时遇到的有关登陆的问题
大家讲道理
大家讲道理 2017-04-17 14:44:14
0
2
380

登陆的时候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 数据,这是什么意思啊……
大神求解救,这几天我就纠结这个问题了……

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(2)
Peter_Zhu

如果只是暫時一次性抓取的話,可以手動打開瀏覽器登錄,然後取cookies,複製到程式裡去請求,user-agent最好跟你瀏覽器裡的一致。

如果是線上即時抓取的話,必須突破驗證碼,這個難度大,沒有試驗過。或許有一些現成的函式庫可以破解掉一些簡單的驗證碼。

Peter_Zhu

需要輸入驗證碼。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板