前言
写个知乎粉丝小爬虫,分为数据爬取和数据的简单可视化两个部分。让我们愉快地开始吧~
开发工具
Python版本:3.6.4
相关模块:
scrapy模块;
pyecharts==1.5.1模块;
wordcloud模块;
jieba模块;
以及一些python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
数据爬取
先随手推一波自己开源的利用requests进行模拟登录的库:
https://github.com/CharlesPikachu/DecryptLogin
复制代码
目前该库支持模拟登录的网站包括:
1\. 微博
复制代码
后续会不断添加和完善该库的功能以及该库相关的一些小应用。当然,今天是用不上了,因为我发现他喵的知乎的粉丝数据竟然一直是一个裸的API,即使是改版之后,也不需要验证什么登录后的cookies之类的东西直接就能抓取到了。
言归正传,简单说说这个数据怎么抓取吧,其实很简单,F12打开开发者工具,刷新一下关注者页面,就可以发现:
请求这个接口直接就能返回目标用户的粉丝数据了,接口的组成形式为:
https://www.zhihu.com/api/v4/members/{用户域名}/followers?
复制代码
没有什么特别需要注意的地方,不用怀疑,就是这么简单,scrapy新建一个项目爬就完事了:
scrapy startproject zhihuFansSpider
复制代码
定义一下items:
class ZhihufansspiderItem(scrapy.Item):
复制代码
然后新建并写一个爬虫主程序就OK啦:
'''知乎粉丝小爬虫'''
复制代码
运行以下命令开始爬取目标用户的粉丝数据:
scrapy crawl zhihuFansSpider -o followers_info.json -t json
复制代码
数据可视化
老规矩,可视化一下爬到数据呗(这里就以我自己知乎账号的关注者数据为例好了T_T)。
先画个粉丝主页标题的词云压压惊?
![https://upload-images.jianshu.io/upload_images/2539976-ada286149ecb2285?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
复制代码
我比较好奇中间那个“狗”字是什么鬼。。。
然后再统计一下粉丝的男女比例呗?
应该算是很真实吧?[图片上传失败...(image-b139c3-1617265093411)]
让我们再来看看我的关注者里有多少VIP用户?
好的,答案是0个~
再来看看follow我的人一般有多少followers呗:
最后再来看看粉丝的回答数统计呗:
为了帮助提升正在学习Python编程的伙伴们,在这里为大家准备了丰富的学习大礼包
All done~完整源代码详见大礼包图相关文件。




近期评论