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

登陆的时候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最好跟你浏览器里的一致。

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

いいねを押す+0
    Peter_Zhu

    需要输入验证码。

    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!