scrapy爬取知乎全站用戶信息,存入mongodb數據庫

源碼地址github,裏面有詳細註釋https://github.com/15160200501/scrapy-

可以直接運行,不能運行的話,接口應該是換了

工具:pycharm、python37、mongodb數據庫、數據庫可視化工具robo3t

知乎:

思路:1、選定候選人

       2、獲取粉絲和關注列表

       3、獲取列表用戶信息

       4、獲取每位用戶粉絲和關注

先創建一個Scrapy項目:

先在settings:不遵循robots協議,在HEADERS裏面添加頭部信息user-agent,不添加頭信息會報狀態碼

 

執行scrapy crawl zhihu,看是否返回該url的源碼(個人信息的api口)

執行scrapy crawl zhihu,看是否返回該url的源碼(關注列表的api接口)

執行scrapy crawl zhihu,看到都能返回該url的json文本

 

在UserItem中編寫item,需要爬取的信息,根據抓包中的json看到

執行scrapy crawl zhihu,能看到返回第一個作者信息和關注列表的信息,有下一頁,進行自己的回調。

爬取第一個作者的個人信息的關注列表後,再爬取關注列表裏的關注的人,層層遞歸爬取關注的人

再添加粉絲的列表,也進行跟關注一樣的操作,層層遞歸爬取粉絲列表的粉絲個人信息

 

要存儲到mongodb數據庫中,可以看到scrapy的官方文檔https://doc.scrapy.org/en/latest/topics/item-pipeline.html,複製粘貼到pipeline管道文件中,而後再進行修改

再settings中再進行一些改動

完成這些,已經完成知乎全部用戶信息的代碼編寫呢,之後就是在命令行執行scrapy crawl zhihu

由於爬取的太多,按了ctrl+c暫停了爬取,之後在mongodb數據庫的可視化工具robo3t進行知乎用戶的信息查看,可以看到右上角500,說明共爬取了10頁,一頁爬取50個個人信息,爬取了將近500個個人的信息

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章