爬取知乎60萬用戶信息之後的簡單分析

作者:Brian"s Homepage

原文鏈接:爬取知乎60萬用戶信息之後的簡單分析

使用 Java+Elasticsearch+Kibana 爬取了知乎 60 萬用戶數據,做了簡單的可視化分析。

項目源碼 GitHub - webporter github.com/brianway/web

動機

在知乎上看到有個叫 @路人甲 的大神每隔一段時間就爬爬豆瓣/B站等等網站,做了很多有意思的分析,加上之前因為實驗室項目接觸過 Nutch,淺嘗輒止了,所以一直想好好玩玩爬蟲。

網上 Python 的爬蟲教程很多,而自己的主語言是 Java,本著宣傳 Java,以練促學的目的,我使用 Java 爬取了知乎 60 萬用戶信息,主要想看看知乎上妹子多不多啊/是不是都是基佬啊,標配常青藤/年薪百萬是不是真的啊,等等。

思路

為了保證數據的質量,避免爬到一些殭屍號什麼的,我選擇爬取關注列表而非粉絲列表。我隨機挑選了一位粉絲過千的優秀回答者作為起始,爬取他的關注列表,再對列表中的每個人爬取其關注列表,以此類推……

下載了大概 7 個小時,爬了 40 多萬用戶的關注列表,拿到了 10G 的數據,如圖所示:

理論上有 800 多萬用戶,可惜有很多重複的,去重後將數據導入 Elasticsearch,得到 60+ 萬用戶數據:

數據驗證

接下來簡單看看下載下來的數據靠不靠譜,隨手在知乎和我的 Kibana 分別搜了下輪子哥 @vczh

可以看到,連同名的都搜出來是一樣的,數據沒啥問題。

然後使用 Elastichearch 的聚合查詢配合 Kibana 對數據進行可視化展示。

本文主要放技術分析這一塊,具體數據情況可以查看閱讀原文。

最後按照國際慣例,附上源碼鏈接[GitHub - webporter]: github.com/brianway/web

閱讀原文


推薦閱讀:

MySQL小巧而強大的管理工具
圖解 SQL 里的各種 JOIN
有哪些值得推薦的 Kettle 的學習資料?
現在資料庫的發展方向如何,在商業智能領域中(主要處理數據業務)作為一名 ETL 調度人員所需要的專業知識有哪些?
Learn SQL | 基礎操作綜合練習

TAG:知乎 | PHP | 数据库 |