【萌新寫爬蟲】爬知乎關注信息

來這看嘛【萌新寫爬蟲】爬知乎關注信息

這個例子是【爬蟲工程師課程】中的一個實戰,這裡簡單介紹下。

記得以前說過,爬蟲有三步:獲取源碼、解析源碼、儲存數據。首先看看知乎的數據在哪裡。

一、分析網頁請求

以輪子哥為例,vczh,當我們禁用JS載入後,網頁只有3條數據(屬於lazy load),那麼需要尋找數據

老規矩,打開開發者工具,找到翻頁相關,數據都在這裡

https://www.zhihu.com/api/v4/members/excited-vczh/followees?include=data%5B*%5D.answer_count%2Carticles_count%2Cgender%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge%5B%3F(type%3Dbest_answerer)%5D.topics&offset=40&limit=20n

去除無用參數,是這樣

https://www.zhihu.com/api/v4/members/excited-vczh/followees?offset=40&limit=20nhttps://www.zhihu.com/api/v4/members/excited-vczh/followees?offset=60&limit=20nhttps://www.zhihu.com/api/v4/members/excited-vczh/followees?offset=80&limit=20n

offset 後面的數值就是翻頁了。但是直接使用requests,會返回錯誤,我們把請求頭拿出來看看

知乎的多了 authorization X-UDID ,進過測試 authorization 是必要參數,所以構造就很簡單了。

未登錄和已登錄情況下的 authorization 數值不同,進過多次錯誤,我發現必須使用已經登錄下的 authorization 。

寫這個爬蟲我錯誤了無數次~

二、翻頁構造

弄清楚請求就很簡單了,翻頁使用format函數

functions

三、數據儲存

我們打開這些數據,發現是json,那麼就很簡單,可以直接保存,不需要對網頁數據進行解析。

然後可以對數據可視化

咳咳,為什麼我關注了這麼多男性

更有趣的是,打開輪子哥的粉絲列表,兩者對比

關注了:

https://www.zhihu.com/api/v4/members/excited-vczh/followees?offset=20&limit=20n

關注者:

https://www.zhihu.com/api/v4/members/excited-vczh/followers?offset=20&limit=20n

有趣吧,通過這種方法,可以達到對知乎用戶的爬取,前人說過很多,這裡就不說了。

希望本文可以幫助你,像這種載入方式還有微博、頭條。很久以前,萌新曾經提過一個問題,就是頭條爬取,現在看來就很簡單了。

如果想要爬蟲源碼,來公眾號「萌新的學習日記」,回復「知乎」即可。


推薦閱讀:

TAG:Python | 爬虫计算机网络 | vczh知乎用户 |