python知乎爬虫(最新)

环境: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......

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,558评论 25 708
  • 知乎已经成为了爬虫的训练场,本文利用Python中的requests库,模拟登陆知乎,获取cookie,保存到本地...
    DayDayUpppppp阅读 13,569评论 5 22
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,992评论 19 139
  • 1 什么是软件架构 如下是几个对软件架构的理解: 应用软件架构(architecture)是指一个过程,在这个过程...
    貘鸣阅读 558评论 0 0
  • 阿一妹八个半月,谁都可以抱,谁抱都不哭,这不,第一次见波叔就老蹭着要他抱,完全没有违和感。 波叔自诩到:我从来都是...
    法门萝莉阅读 278评论 0 0