我 相 信 这 么 优秀 的 你
已 经 置 顶 了 我
来源|Brian 选文|小象
禁止二次转载
项目源码 GitHub - webporter https://github.com/brianway/webporter
(点击文末阅读原文可查看)
动机
在知乎上看到有个叫 @路人甲 的大神每隔一段时间就爬爬豆瓣/B站等等网站,做了很多有意思的分析,加上之前因为实验室项目接触过 Nutch,浅尝辄止了,所以一直想好好玩玩爬虫。
网上 Python 的爬虫教程很多,而自己的主语言是 Java,本着宣传 Java,以练促学的目的,我使用 Java 爬取了知乎 60 万用户信息,主要想看看知乎上妹子多不多啊/是不是都是基佬啊,标配常青藤/年薪百万是不是真的啊,等等。
思路
为了保证数据的质量,避免爬到一些僵尸号什么的,我选择爬取关注列表而非粉丝列表。我随机挑选了一位粉丝过千的优秀回答者作为起始,爬取他的关注列表,再对列表中的每个人爬取其关注列表,以此类推……
下载了大概 7 个小时,爬了 40 多万用户的关注列表,拿到了 10G 的数据,如图所示:
理论上有 800 多万用户,可惜有很多重复的,去重后将数据导入 Elasticsearch,得到 60+ 万用户数据:
数据验证
接下来简单看看下载下来的数据靠不靠谱,随手在知乎和我的 Kibana 分别搜了下轮子哥 @vczh
可以看到,连同名的都搜出来是一样的,数据没啥问题。
然后使用 Elastichearch 的聚合查询配合 Kibana 对数据进行可视化展示。
本文主要放技术分析这一块,具体数据情况可以点击阅读原文。源码链接也能在原文内找到[GitHub - webporter]: https://github.com/brianway/webporter