python爬虫实战--知乎
2018-05-28 本文已影响148人
神之试炼者
申明&警告: 请在相关网站的许可范围内爬取数据.以免影响网站正常运行, 如果我的文章有触犯权益的地方, 请告知删除.
学习了requests库和webdriver库, 基本可以完成大部分爬虫工作了.
下面是我爬取知乎的常用方法. 供参考学习.
说明: 有些网站访问的时候需要用户处于登录状态. 你要进入知乎首页需要先登录知乎账号. 但是其实访问知乎并不强制用户登录. 比如在百度搜索: 如何评价xxx 知乎. 能看到知乎帖子...说明用户登录不是必须的(可以了解下cookie和session的作用, 有时候我们需要先登录拿到这两个信息,在headers里面配置它们, 才能开始爬取网站)
一. 直接开始爬取话题吧
image.png像如上的首页, 我们把response body复制到 https://www.json.cn/ 看下
image.png
我们发现这些数据确实是我们要找的. 那么url是哪个呢?
image.png如果我们用requests工具, 可能要伪造必要的headers信息....因为知乎headers信息不少, 我懒得一个个排查哪个是必须的. 所以一般直接用webdriver爬知乎. 然后遇到明显不要求headers的请求, 才会用requests工具(比如下载图片一般不需要太多权限信息)
返回结果直接转成 dict结构, 然后就能直接使用了.
具体代码怎么写, 可以自己慢慢摸索. 这篇文章只提供: "怎么找url,以及怎么分析返回结果"
扩展:
我爬过知乎的所有话题, 爬过感兴趣的话题下的所有上千赞的回答, 以及知乎大多数表情包(通过爬取"表情包"及其子话题下的所有问题和回复获得), 还有知乎大牛统计, 美女统计等等.....原理都一样, 找到url, 配合翻页, json解析, 然后不停的抓取就行了.