Python 知乎爬虫(最新)

6,198 阅读2分钟
原文链接: www.jianshu.com

环境:python3.x
外部依赖包:requests
github项目地址

主要的问题:模拟登陆:

知乎现在改用https请求了,数据加密,但是问题不大,重要的是网页数据改动了,而且在请求时后台会对爬虫做一些判断,因此在每次请求是都需要加上request header,尽可能接近浏览器请求的样子。

言归正传

登陆的数据依旧没变动


a.png

通过chrome开发者工具可以了解到。

但是有时候需要用到验证码,所以,我的爬虫直接下载验证码到本地,想要尝试验证码自动识别的同学,可以移步我另一篇文章简单验证码识别,虽然那篇文章只讲数字验证码的识别,但是基本思想是一样的(不过知乎目前的验证码识别有点难度了)。

_xsrf这个数据在登陆网页上可以找到,虽然发生了变动,但是依然可以通过正则找出来。

登陆函数大概是这样的:


Paste_Image.png

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


Paste_Image.png

from python_zhihu import ZhiHu

zh=ZhiHu()

//下载某个问题下的高赞答案:
zh.get_answer_text('某问题的url')
//这个方法会下载某个问题下的高赞文字答案,存储在一个txt文件中


//下载某个问题下所有的图片:
zh.get_answer_img('某问题的url')
// 这个方法会下载某个问题下的答案中的所有图片,并且按照回答人的昵称归类

目前更新只是保证正常的爬取知乎,后期可能会加上更多功能,敬请期待....

star,please......

源码:github.com/ladingwu/py…