如何爬取了知乎用戶信息,並做了簡單的分析
阿新 • • 發佈:2018-10-18
gem 話題 top href pycha 抓取 一定的 chat 綠色
爬蟲:python27 +requests+json+bs4+time
- 分析工具: ELK套件
- 開發工具:pycharm
1.性別分布
- 0 綠色代表的是男性 ^ . ^
- 1 代表的是女性
- -1 性別不確定
可見知乎的用戶男性頗多。
2.粉絲最多的top30
粉絲最多的前三十名:依次是張佳瑋、李開復、黃繼新等等,去知乎上查這些人,也差不多這個排名,說明爬取的數據具有一定的說服力。
3.寫文章最多的top30
爬蟲架構圖如下:
說明:
- 選擇一個活躍的用戶(比如李開復)的url作為入口url.並將已爬取的url存在set中。
- 抓取內容,並解析該用戶的關註的用戶的列表url,添加這些url到另一個set中,雅思培訓一般多少錢
- 解析該用戶的個人信息,並存取到本地磁盤。
- logstash取實時的獲取本地磁盤的用戶數據,並給elsticsearch
- kibana和elasticsearch配合,將數據轉換成用戶友好的可視化圖形。
五.編碼
爬取一個url:
解析內容:
存本地文件:
代碼說明:
- 需要修改獲取requests請求頭的authorization。
- 需要修改你的文件存儲路徑。
源碼下載:點擊這裏,記得star哦!
- 打開chorme,打開https://www.zhihu.com/,
- 登陸,首頁隨便找個用戶,進入他的個人主頁,F12(或鼠標右鍵,點檢查)
- 點擊關註,刷新頁面,見圖:
- 可增加線程池,提高爬蟲效率
- 存儲url的時候我才用的set(),並且采用緩存策略,最多只存2000個url,防止內存不夠,其實可以存在redis中。
- 存儲爬取後的用戶我說采取的是本地文件的方式,更好的方式應該是存在mongodb中。
- 對爬取的用戶應該有一個信息的過濾,比如用戶的粉絲數需要大與100或者參與話題數大於10等才存儲。防止抓取了過多的僵屍用戶。
關於elk的套件安裝就不討論了,具體見官網就行了。網站:https://www.elastic.co/
另外logstash的配置文件如下:
從爬取的用戶數據可分析的地方很多,比如地域、學歷、年齡等等,我就不一一列舉了。另外,我覺得爬蟲是一件非常有意思的事情,在這個內容消費升級的年代,如何在廣闊的互聯網的數據海洋中挖掘有價值的數據,是一件值得思考和需不斷踐行的事情。最後,本文僅用作交流學習。如果知乎告知我侵權,我會立刻刪除本文。
如何爬取了知乎用戶信息,並做了簡單的分析