【萌新寫爬蟲】爬知乎關注信息
來這看嘛【萌新寫爬蟲】爬知乎關注信息
這個例子是【爬蟲工程師課程】中的一個實戰,這裡簡單介紹下。
記得以前說過,爬蟲有三步:獲取源碼、解析源碼、儲存數據。首先看看知乎的數據在哪裡。
一、分析網頁請求
以輪子哥為例,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
有趣吧,通過這種方法,可以達到對知乎用戶的爬取,前人說過很多,這裡就不說了。
希望本文可以幫助你,像這種載入方式還有微博、頭條。很久以前,萌新曾經提過一個問題,就是頭條爬取,現在看來就很簡單了。
如果想要爬蟲源碼,來公眾號「萌新的學習日記」,回復「知乎」即可。
推薦閱讀: