簡書首頁數(shù)據(jù)抓取的答疑

有幾位簡友留言問到簡書首頁數(shù)據(jù)的抓取問題,說只能抓取到20條數(shù)據(jù),如何抓取到更多;簡書首頁數(shù)據(jù)分頁加載是怎么樣處理?

我用chrome -- 檢查 -- network 分析一下,截圖來說明。我是按這樣的順序來進行分析的。

  1. 弄清分頁加載的方式
  • 著重分析第2頁url,找出構造url參數(shù)的規(guī)律
  • 在第3頁中驗證

分頁加載方式在前面文章中講過,無非3種方式,簡書首頁采用的是滾動加載,直接滾動加載第2頁,查看url進行分析:

構成第2頁url中有20個id的參數(shù),加上page=2,需要回到加載首頁時看看這20個id是如何得到的。

發(fā)現(xiàn)就是文章<li>的id,這個可以在第一次抓取時獲得,這樣就可以構造成第二頁的一長串的URL

再驗證一下第3頁的URL,發(fā)現(xiàn)這個時候id的數(shù)量增加了。增加的是從哪里來的?

核對一下,這些id包含了前兩次加載的頁面的<li>id值,這樣構成第3頁的url,在編寫代碼的過程中,我發(fā)現(xiàn)直接構造了這樣的URL,還是不能抓取到第2頁或第3頁的數(shù)據(jù),仍然是第一頁的數(shù)據(jù)。從抓包和請求上查看,這時我已經構造了完整的請求的URL。

回過頭來比較一下,第一次(首頁)加載的數(shù)據(jù)和后面分頁加載的數(shù)據(jù)有什么不同。

后面的分頁加載的直接是xml數(shù)據(jù),請求的是XMLHttpRequest,修改一下請求頭headers,再次抓取,就會看到抓取的是分頁數(shù)據(jù)了。


在這篇文章中 Python爬取數(shù)據(jù)的分頁分析,簡書七日熱門和三十熱門抓取時,網頁結構基本與首頁相似,我對URL做了簡化處理,不影響數(shù)據(jù)的獲取,為什么在抓取首頁數(shù)據(jù)時要傳遞這么復雜的參數(shù),大家可以思考一下。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容