文的文字及圖片來源於網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理。
作者: 向右奔跑
PS:如有需要Python學習資料的小伙伴可以加點擊下方鏈接自行獲取
http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef
對爬蟲爬取數據時的分頁進行一下總結。分頁是爬取到所有數據的關鍵,一般有這樣幾種形式: 1、已知記錄數,分頁大小(pagesize, 一頁有多少條記錄)
-
已知總頁數(在頁面上顯示出總頁數)
-
頁面上沒有總記錄數,總頁數,但能從分頁條中找到總頁數
-
滾動分頁,知道總頁數
-
滾動分頁,不知道總頁數
以上前三種情況比較簡單,基本上看一下加載分頁數據時的地址欄,或者稍微用Chrome -- network分析一下,就可以了解分頁的URL。
一、頁面分析,獲取分頁URL
典型的如豆瓣圖書、電影排行榜的分頁。
對於像以下這種分頁,沒有顯示總記錄數,但從分頁條上看到有多少頁的,一般的處理方法有兩種:一是先把最后一頁的頁碼抓取下來;二是一頁一頁的訪問抓取,直到沒有“下一頁”。
二、用抓包工具,查看分頁URL
通過抓包工具,獲取了分頁的URL,再進行總頁數的分析,一般是進行計算,如這里,有文章總數量,每頁顯示的文章數(頁大小),就可以計算出總頁數。 看一下這個,七日熱門文章的分頁,比較有意思。這么一長串,是不是比較崩潰。
這時候一般要縮短參數,確定關鍵參數。分頁關鍵的參數是page=2,直接把url減少成這樣:
看到就是我們所需要的數據。 再回過頭來理解一下,為什么采用了這樣一串的URL,可以通過查看response,發現響應的是xml數據(一段網頁數據),也就是這里采用了異步加載(AJAX)。
三、抓包分析,需要構造分頁URL
這時候,通過抓包分析,還不能獲取分頁的URL。有時候是抓包到的URL直接放到地址欄也查看不到所要的分頁數據,還有時候是分頁的URL中有其他參數。
如簡書用戶“動態”數據分頁url,抓包到的是
這里就要了解如何獲取max_id這個值。還有一個問題就是要判斷是否到了最后一頁。 如簡書“投稿請求”數據的分頁: