scrapy 知乎用戶信息爬蟲


zhihu_spider

此項目的功能是爬取知乎用戶信息以及人際拓撲關系,爬蟲框架使用scrapy,數據存儲使用mongo,下載這些數據感覺也沒什么用,就當為大家學習scrapy提供一個例子吧。代碼地址:https://github.com/LiuRoy/zhihu_spider,歡迎各位大神指出問題,另外知乎也歡迎大家關注哈 ^_^.

流程圖

 

  • 解析的用戶信息包括昵稱,頭像鏈接,個人基本信息還有關注人的數量和粉絲的數量。這個頁面還能獲取關注人頁面和粉絲頁面。
  • 由上一步獲取的分頁列表頁面和關注人頁面獲取用戶人際關系,這兩個頁面類似,唯一麻煩的是得到的靜態頁面最多只有二十個,獲取全部的人員必須通過POST請求,解析到的個人主頁再由上一步來解析。

代碼解釋

scrapy文檔非常詳細,在此我就不詳細講解,你所能碰到的任何疑問都可以在文檔中找到解答。 

  • 爬蟲框架從start_requests開始執行,此部分會提交知乎主頁的訪問請求給引擎,並設置回調函數為post_login.
  • post_login解析主頁獲取_xsrf保存為成員變量中,並提交登陸的POST請求,設置回調函數為after_login.
  • after_login拿到登陸后的cookie,提交一個start_url的GET請求給爬蟲引擎,設置回調函數parse_people.
  • parse_people解析個人主頁,一次提交關注人和粉絲列表頁面到爬蟲引擎,回調函數是parse_follow, 並把解析好的個人數據提交爬蟲引擎寫入mongo。
  • parse_follow會解析用戶列表,同時把動態的人員列表POST請求發送只引擎,回調函數是parse_post_follow,把解析好的用戶主頁鏈接請求也發送到引擎,人員關系寫入mongo。
  • parse_post_follow單純解析用戶列表,提交用戶主頁請求至引擎。

效果圖

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM