⑴ 如何使用python爬取知乎數據並做簡單分析
一、使用的技術棧:
爬蟲:python27 +requests+json+bs4+time
分析工具: ELK套件
開發工具:pycharm
數據成果簡單的可視化分析
1.性別分布
0 綠色代表的是男性 ^ . ^
1 代表的是女性
-1 性別不確定
可見知乎的用戶男性頗多。
二、粉絲最多的top30
粉絲最多的前三十名:依次是張佳瑋、李開復、黃繼新等等,去知乎上查這些人,也差不多這個排名,說明爬取的數據具有一定的說服力。
三、寫文章最多的top30
四、爬蟲架構
爬蟲架構圖如下:
說明:
選擇一個活躍的用戶(比如李開復)的url作為入口url.並將已爬取的url存在set中。
抓取內容,並解析該用戶的關注的用戶的列表url,添加這些url到另一個set中,並用已爬取的url作為過濾。
解析該用戶的個人信息,並存取到本地磁碟。
logstash取實時的獲取本地磁碟的用戶數據,並給elsticsearchkibana和elasticsearch配合,將數據轉換成用戶友好的可視化圖形。
五、編碼
爬取一個url:
解析內容:
存本地文件:
代碼說明:
* 需要修改獲取requests請求頭的authorization。
* 需要修改你的文件存儲路徑。
源碼下載:點擊這里,記得star哦!https : // github . com/forezp/ZhihuSpiderMan六、如何獲取authorization
打開chorme,打開https : // www. hu .com/,
登陸,首頁隨便找個用戶,進入他的個人主頁,F12(或滑鼠右鍵,點檢查)七、可改進的地方
可增加線程池,提高爬蟲效率
存儲url的時候我才用的set(),並且採用緩存策略,最多隻存2000個url,防止內存不夠,其實可以存在redis中。
存儲爬取後的用戶我說採取的是本地文件的方式,更好的方式應該是存在mongodb中。
對爬取的用戶應該有一個信息的過濾,比如用戶的粉絲數需要大與100或者參與話題數大於10等才存儲。防止抓取了過多的僵屍用戶。
八、關於ELK套件
關於elk的套件安裝就不討論了,具體見官網就行了。網站:https : // www . elastic . co/另外logstash的配置文件如下:
從爬取的用戶數據可分析的地方很多,比如地域、學歷、年齡等等,我就不一一列舉了。另外,我覺得爬蟲是一件非常有意思的事情,在這個內容消費升級的年代,如何在廣闊的互聯網的數據海洋中挖掘有價值的數據,是一件值得思考和需不斷踐行的事情。
⑵ 網路爬蟲的數據採集方法有哪些
基於HTTP協議的數據採集:HTTP協議是Web應用程序的基礎協議,網路爬蟲可以模擬HTTP協議的請求和響應,從而獲取Web頁面的HTML、CSS、JavaScript、圖片等資源,並解析頁面中的數據。
基於API介面的數據採集:許多網站提供API介面來提供數據訪問服務,網路爬蟲可以通過調用API介面獲取數據。與直接採集Web頁面相比,通過API介面獲取數據更為高效和穩定。
基於無頭瀏覽器的數據採集:無頭瀏覽器是一種無界面的瀏覽器,它可以模擬用戶在瀏覽器中的行為,包括頁面載入、點擊事件等。網路爬蟲可以使用無頭瀏覽器來模擬用戶在Web頁面中的操作,以獲取數據。
基於文本分析的數據採集:有些數據存在於文本中,網路爬蟲可以使用自然語言處理技術來分析文本數據,提取出需要的信息。例如,網路爬蟲可以使用文本分類、實體識別等技術來分析新聞文章,提取出其中的關鍵信息。
基於機器學習的數據採集:對於一些復雜的數據採集任務,網路爬蟲可以使用機器學習技術來構建模型,自動識別和採集目標數據。例如,可以使用機器學習模型來識別圖片中的物體或文字,或者使用自然語言處理模型來提取文本信息。
總之,網路爬蟲的數據採集方法多種多樣,不同的採集任務需要選擇不同的方法來實現。