python[requests]爬取知乎个人信息数据

栏目: Python · 发布时间: 6年前

内容简介:预览地址:

效果

预览地址: http://23.105.208.123/

python[requests]爬取知乎个人信息数据

技术栈

源码地址

https://github.com/MasakiOvO/...

python需要安装的库

requests,BeautifulSoup,redis,django

思路

两个程序。

  1. 一个程序负责爬取用户关注和粉丝列表, 并把用户名存入set
  2. 另一个程序负责根据用户名获取详细信息,存入hash

维护 两个列表 1.已爬用户 2.未爬用户

第一个程序的流程:

当未爬set不为空时:执行如下操作:
每次从未爬取列表中取出一个用户名 
根据用户名,获取他的关注与粉丝并遍历,如果用户既没在已爬用户,也没在未爬用户 加入未爬用户列表。

第二个程序的流程

每次从未爬set中取出一个用户名,调用接口获取详细信息并存入redis hash中

接口获取

python[requests]爬取知乎个人信息数据

打开某个人的个人主页,按F12

python[requests]爬取知乎个人信息数据

选择XHR 然后点击图1的关注我的人,和我关注的人,在图2就可以看到header和cookie。

获取用户列表Api:

https://www.zhihu.com/api/v4/... {username}/{type}?include=data[*].answer_count,articles_count,gender,follower_count,is_followed,is_following,badge[?(type=best_answerer)].topics&offset=20&limit=20

username 是用户名,

type 是类型, 有两种可选 [followers,followees], followers是粉丝 followees是关注

改变offset的值可以获取分页

获取个人信息Api:

https://www.zhihu.com/people/...

user_token是用户名

这个api中 返回的是html页面,在html页面中有一个scirpt标签里面的内容是json格式的用户信息,这就很方便了,直接获取键值对 对应的属性就ok。

发送请求

F12查看接口,把header和cookie放进requests.get()方法中。

剩下的就很简单了,不赘述了。

总结

还有很多优化的地方。比如加入中间件,来提升爬虫的稳定性。对数据进行分类,统计城市分布。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

区块链

区块链

长铗、韩锋 / 中信出版社 / 2016-7 / CNY 58.00

《区块链:从数字货币到信用社会》从历史与背景、发展现状、基础原理与技术、应用生态、存在的问题与挑战等方面论述了区块链是怎样立起来的,为什么人人都在谈论区块链,区块链的秘密在哪里、进阶区块链(第二代区块链技术)是什么,区块链怎么玩,怎样从信息互联网走向价值互联网,如何用法规约束和监管区块链,区块链走向何处、争议与挑战,并通过经济、金融、货币、法律、科技哲学等角度来加以分析区块链在各个方面遇到的问题和......一起来看看 《区块链》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码