Python系列爬虫之Scrapy实战知乎粉丝小爬虫

前言

写个知乎粉丝小爬虫,分为数据爬取和数据的简单可视化两个部分。让我们愉快地开始吧~

开发工具

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编程的伙伴们,在这里为大家准备了丰富的学习大礼包

引流图3.jpg

All done~完整源代码详见大礼包图相关文件。