python 知乎爬虫

作者: 拉丁吴 | 来源:发表于2015-08-01 00:01 被阅读3355次

依然是使用requests
主要的问题是模拟登陆:

a.png

通过chrome开发者工具可以了解到,登陆的数据有这么一些,
但是根据我的观察,有时候需要用到验证码,所以,我的爬虫一律包含验证码,想要尝试验证码自动识别的同学,可以移步我另一篇文章简单验证码识别,虽然那篇文章只讲数字验证码的识别,但是基本思想是一样的。
言归正传,__xsrf这个数据在登陆网页上可以找到,所以可以通过正则找出来。

登陆函数大概是这样的:

Paste_Image.png

函数初次登陆,需要账号和密码,之后,程序会自动记录一个cookie文件,在当前文件夹下,下次运行程序就不需要再输入密码和账号了,读写cookie文件的程序大概是这样:

Paste_Image.png

下载源码后,基本操作是:
先需要实例化:
from python_zhihu import ZhiHu
zh=ZhiHu()
下载某个问题下的高赞答案:
zh.get_text('填入网址')
下载某个问题下所有的图片:
zh,get_img('url')

源码:https://github.com/ladingwu/python_zhihu

相关文章

网友评论

  • JasperWong:同问,这个爬虫的话现在只能爬10个回答,请问如果想要全部的话怎么实现呢?
    拉丁吴:@JasperWong 既然你们很想知道,我提供一个方向,就是每个答案下都有一个“更多”按钮,找到点击更多按钮时,浏览器时如何请求服务器的


    大概是这样:
    reqeust: https://www.zhihu.com/node/QuestionAnswerListV2
    fromdata: method:next
    params:{"url_token":48264708,"pagesize":10,"offset":20}

    你们可以试试,有问题可以再过来探讨
  • 6281ade7a30e:博主,你好,请问下在写一个知乎爬虫的时候怎么处理知乎的翻页呢?我在抓取某个问题的回答时,一次只能只能抓取到10个问题,如果我想抓取某个问题下的全部回答,该怎么做呢?谢谢哈,期待你的回复!:)
    比如这个问题:https://www.zhihu.com/question/48264708
    拉丁吴:@丨乌托邦丶 看我下面的回复
  • 98405539a93c:这里有现成写好的知乎采集爬虫,可以直接使用,有兴趣的童鞋可以试下
    http://www.shenjianshou.cn/index.php?r=market/configDetail&pid=111
  • 766071bdff71:你好,请问form data是怎么查看的,为什么我在chrome开发者工具上没有找到这个选项啊
    766071bdff71:@ladingwu 哦,好谢谢啦,找到原因了
    拉丁吴:@晨曦leo 在登陆界面,你随便填个账号密码,就能看到一个post的.......
  • e38ed5175745:多谢了你的代码,我才知道怎么获得验证码。不过你是怎么知道验证码的那个r值是这样赋值的呢?
    拉丁吴:@fusae 不然你觉得那后面一串数字是什么?

本文标题:python 知乎爬虫

本文链接:https://www.haomeiwen.com/subject/xptvqttx.html