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

效果

f3cbe46e39d2a9135f8d8e0e7edb8f60.png

技术栈

源码地址

python需要安装的库

requests,BeautifulSoup,redis,django

思路

两个程序。

一个程序负责爬取用户关注和粉丝列表, 并把用户名存入set

另一个程序负责根据用户名获取详细信息,存入hash

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

第一个程序的流程:

当未爬set不为空时:执行如下操作:

每次从未爬取列表中取出一个用户名

根据用户名,获取他的关注与粉丝并遍历,如果用户既没在已爬用户,也没在未爬用户 加入未爬用户列表。

第二个程序的流程

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

接口获取

f583a3a3fad49dce67bd613602980722.png

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

bVbuplC?w=2324&h=858

选择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:

user_token是用户名

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

发送请求

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

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

总结

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值