使用 java+elasticsearch+kibana 爬取了知乎 60 萬使用者資料,做了簡單的可視化分析。
項目源碼 github – webporter
動機
在知乎上看到有個叫 @路人甲 的大神每隔一段時間就爬爬豆瓣/b站等等網站,做了很多有意思的分析,加上之前因為實驗室項目接觸過 nutch,淺嘗辄止了,是以一直想好好玩玩爬蟲。
網上 python 的爬蟲教程很多,而自己的主語言是 java,本着宣傳 java,以練促學的目的,我使用 java 爬取了知乎 60 萬使用者資訊,主要想看看知乎上妹子多不多啊/是不是都是基佬啊,标配常青藤/年薪百萬是不是真的啊,等等。
思路
為了保證資料的品質,避免爬到一些僵屍号什麼的,我選擇爬取關注清單而非粉絲清單。我随機挑選了一位粉絲過千的優秀回答者作為起始,爬取他的關注清單,再對清單中的每個人爬取其關注清單,以此類推……
下載下傳了大概 7 個小時,爬了 40 多萬使用者的關注清單,拿到了 10g 的資料,如圖所示:
理論上有 800 多萬使用者,可惜有很多重複的,去重後将資料導入 elasticsearch,得到 60+ 萬使用者資料:
資料驗證
接下來簡單看看下載下傳下來的資料靠不靠譜,随手在知乎和我的 kibana 分别搜了下輪子哥 @vczh
可以看到,連同名的都搜出來是一樣的,資料沒啥問題。
關心的資料
然後使用 elastichearch 的聚合查詢配合 kibana 對資料進行可視化展示,我主要分析了下面幾個問題:
性别分布
粉絲最多的使用者top10
員工最多的公司top10
校友最多的學校top10
人數最多的地方top10
top10行業分布
top10職業分布
圖中涉及性别的, 1 表示男,0 表示女,-1 表示不男不女
可以看到知乎男性人數過半了,比女性和未知性别加起來都多。
粉絲數前 10 的依次是 @張佳玮,@李開複,@黃繼新,@周源,@yolfilm,@張亮,@張小北,@李淼,@葛巾,@采銅。最多的 120 萬粉絲,第十也過 60 萬了。不過前十裡好幾個都是知乎員工,有黑幕的嫌疑吧?
可以看到 bat 全部上榜了(亂入了一個學生什麼鬼?),僅接着是網易,華為,谷歌,微軟,美團。都是牛逼哄哄的網際網路相關企業,看來國企和實體企業比較低調,不在知乎填公司資訊啊。
另外華為的男女比簡直不能看啊,妹子那麼少,想去華為的單身狗們需要好好考慮一下了。
差強人意,校友人數排名前十的全特麼是 985 啊,清北複交浙全部上榜,俨然中國大學排行榜。看來知乎标配不是常青藤,而是 985 嘛。另外可以看到,我科(倒數第三個)的男女比在這幾個裡面确實感人,難怪我現在還單身…
北京獨領風騷,上海緊随其後。另外知乎居然把深圳和廣州根據有沒有“市”标記為了兩個城市,簡直坑爹,我也懶得二次處理了。綜合來看,北上廣深杭,主要集中在這五個城市,基本也是我國網際網路企業分布最多的幾個城市。
可以看到,網際網路和計算機軟體兩個加起來就占了半數以上,要是算上電子商務和電子遊戲等基本是程式員的天下了,是以知乎上程式員偏多,it 從業者占主流啊。
另外網際網路的男女比大概 2:1 的樣子吧,法律,資訊傳媒和創意藝術的男女比比較均衡,大概五五開。
将近四分之一是産品經理,創始人和 ceo 也不少,比工程師還多,學生也占一定比例。另外除了營運和編輯的男女比差不多,其它都是男多女少啊。
結語
從這 60 萬使用者資料可以看出,知乎的主要群體是程式員和學生,平均學曆 985 不是黑,是真的!雖然知乎使用者遠不止 60 萬,這些資料分析出來的結果可能有些偏差,但應該也能說明一些問題吧。
最後按照國際慣例,附上源碼,github – webporter
本文作者:brianway
來源:51cto