在昨天的文章中,詳細地介紹了web scraper的安裝以及完整的採集流程,但是也只是侷限在一個頁面採集,那麼如果我要實現多頁面採集呢,這要如何實現呢?

首先我們先來看看有哪些多頁面形式呢?我們在採集多頁面的時候,首先要做的就是觀察頁面在翻頁的時候,頁面鏈接是否發生變化,這裡主要可以分為3種形式來討論:

1、URL 參數分頁(比較規整方式),URL 中帶有分頁的 page 參數的,如知乎,知乎在很多頁面的page參數都是非常規律的,就拿上個頁面的鏈接來看,原始的鏈接是這樣的:

但是當我們點擊頁面底下下的翻頁的數字時:

鏈接就會發生這樣的變化,第一頁,第二頁、第三頁、第N頁:

我們會發現,當我們翻到第N頁的時候,page後面的參數也是N,都是呈現規律式的變化,像這種分頁模式的處理就很簡單了。主要採用的方法是:直接在創建sitemap時,Start URL中就可以帶上分頁參數,寫成這樣:

zhihu.com/people/zhang-[1-73255]

1-73255,指的是起始頁是1,最後頁是73255,並且用中括弧[]來表示。這樣就創建了關於知乎的多頁面採集。

其實還有一種情況類似規律性頁面分佈,但是又有所不同,我們就以豆瓣為例,來看下豆瓣的鏈接,下面分別是第一頁、第二頁、第三頁、第四頁、第10頁的頁面鏈接:

我們可以看到第一頁時,start的參數是0,第二頁的start參數是25,第三頁的start參數是50,以此類推,發現每個頁面參數都是相差25的,而不是知乎的1,這個時候我們的分頁鏈接可以寫成:

movie.douban.com/top250?[0-225:25]5&filter=

start的參數依然是用中括弧括起來的,0表示起始頁的start值,225表示最終頁的start參數值,25表示每個頁面的start值的距離,並且用冒號:來鏈接起來,表示的就是採集start值為0-225,並且每個頁面距離為25的頁面的數據。

2、上面介紹的其實就是規律分頁的形式,有明顯的規律可循,這也是絕大多數網站採用的方式,但是這幾年越來越多的網站為提高安全性和加強閱讀體驗,採用了諸如「點擊閱讀更多」「下拉載入」等不規律的分頁方法,例如it桔子網(itjuzi.com)和麥淘網(www.maitao.com),那這種頁面要怎麼採集呢?

事實上這種頁面採集還是比較簡單的。先來看it桔子,就以在it桔子中搜索「親子」得到的結果為例,頁面鏈接如下。

itjuzi.com/search?

在觀察頁面的時候,我們看到it桔子是以「點擊載入更多」來實現翻頁的:

這個時候我們就需要在一級選擇器將type選項改為「element click」,選擇後,一級選擇器頁面就出現瞭如下的變化:

Click selector:點擊選擇器,就是選擇需要點擊翻頁的地方,因為我們這裡需要點擊「載入更多」才能實現翻頁,那操作就是點擊select後,將滑鼠移動到「載入更多」,點擊後選擇Done selecting即可。

Click type:指的就是點擊類型,裡面有兩個選項:點擊一次(click once)還是點擊多次(click more),如果只點擊一次就能夠顯示全部內容,那就選擇點擊一次,如果是需要多次點擊才能顯示全部內容,那就選擇點擊多次。這裡因為需要多次點擊,那就選擇click more

Click element

uniqueness:指的是當出現什麼不一樣的時候停止翻頁,分別有不一樣的文字,不一樣的html,不一樣的html+文字,不一樣的css樣式變化,這裡我們一般都會選擇最後一種:不一樣的css樣式變化(unique css selector)

到此點擊載入的翻頁就設置完成了,不需要再去修改鏈接了。

那麼還有一種類似於今日頭條、賣淘網網站滾動滑鼠就會載入內容的翻頁形式要怎麼在web scraper實現翻頁採集呢?

3、滑鼠滾動載入內容的網站實現翻頁採集,這裡就以麥淘網為例,鏈接:

m.maitao.com/classify/n,這是手機鏈接,這裡需要說明的是,當一些網站網頁端反爬蟲比較強大的時候,我們通常會選擇手機端來採集。

因為是滑鼠滾動後自動採集,我們只需要將一級選擇器頁面中的type設置成element scroll down,發現這時候頁面並不像選擇element click那樣出現很多變化,說明只需要將type改為element scroll down就可以實現滑鼠滾動採集了,如下圖所示:

至此,就介紹完了常見的絕大多數的翻頁採集,此時就可以採集非常多的翻頁網站了。但這並不是全部,當你在採集麥淘網的時候,在選擇元素的時候,會發現很多內容是選不上的,這個時候就需要用到自動選擇和子父類的概念,下次會介紹,在學習中有疑問可以諮詢微信zds369466004.

推薦閱讀:

相關文章