爬取知乎60萬用戶信息之後的簡單分析
作者:Brian"s Homepage
原文鏈接:爬取知乎60萬用戶信息之後的簡單分析
使用 Java+Elasticsearch+Kibana 爬取了知乎 60 萬用戶數據,做了簡單的可視化分析。
項目源碼 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
閱讀原文
推薦閱讀:
※MySQL小巧而強大的管理工具
※圖解 SQL 里的各種 JOIN
※有哪些值得推薦的 Kettle 的學習資料?
※現在資料庫的發展方向如何,在商業智能領域中(主要處理數據業務)作為一名 ETL 調度人員所需要的專業知識有哪些?
※Learn SQL | 基礎操作綜合練習