web scraper 抓取分頁數據和二級頁面內容

轉自:https://www.cnblogs.com/fengzheng/p/9328481.html 

如果是剛接觸 web scraper 的,可以看第一篇文章
web scraper 是一款免費的,適用於普通用戶(不需要專業 IT 技術的)的爬蟲工具,可以方便的通過鼠標和簡單配置獲取你所想要數據。例如知乎回答列表、微博熱門、微博評論、淘寶、天貓、亞馬遜等電商網站商品信息、博客文章列表等等。

如果你已經用過這個工具,想必已經用它抓取過一些數據了,是不是很好用呢。也有一些同學在看完文章後,發現有一些需求是文章中沒有說到的,比如分頁抓取、二級頁面的抓取、以及有些頁面元素選擇總是不能按照預期的進行等等問題。

本篇就對前一篇文章做一個補充,解決上面所提到的問題。

分頁抓取

上一篇文章提到了像知乎這種下拉加載更多的網站,只要使用 Element scroll down 類型就可以了,但是沒有提到那些傳統分頁式的網站。

其實分頁式的網站更加簡單,不用什麼過多的設置,只需要在 Start URL 上做設置就可以了,拿這個豆瓣小組舉例,鏈接地址爲 https://www.douban.com/group/135641/discussion。我們進去後點一點頁面下方的頁碼,就可以看到地址欄上的變化,點擊第 2 頁的時候,在後面的地址欄多了參數 start=25 ,再點擊第 1 頁的時候,參數變爲了 start=0 ,這是比較特殊的一種情況,它的分頁是按照 25 遞增的,向後遞增依次爲 [0,25,50,75...]。大多數的網站的遞增還是1,即[0,1,2,3...]。

而 web scraper 中提供了一種寫法,可以設置頁碼範圍及遞增步長。寫法是這樣的: [開始值-結束值:步長],舉幾個例子來說明一下:

1、獲取前10頁,步長爲1的頁面 :[1-10] 或者 [1-10:1]

2、獲取前10頁,步長爲10的頁面:[1-100:10]

3、獲取前10頁,步長爲25的頁面:[1-250:25]

現在我們要抓取的豆瓣小組的規則就是第三中情況,所以設置 sitemap 的 Start URL 爲:https://www.douban.com/group/135641/discussion?start=[0-100:25] 。

還有一些網站的頁面,比如淘寶店鋪的商品列表頁,它的 url 裏有好多參數,有點參數會隨機變化,有些同學這時候就蒙了,這怎麼設置啊。其實有些參數並不會影響顯示內容,任意設置甚至去掉都沒有關係,只要找對了表示頁碼的參數並按照上面的做法設置就可以了。

二級頁面抓取

這種情況也是比較多的,好多網站的一級頁面都是列表頁,只會顯示一些比較常用和必要的字段,但是我們做數據抓取的時候,這些字段往往不夠用,還想獲取二級詳情頁的一些內容。下面我用虎嗅網來演示一下這種情況下的抓取方式。

目標頁面:https://www.huxiu.com/channel/104.html

只做簡單演示,這個頁面本身是下拉下載更多的頁面,這裏只獲取默認加載的內容以及二級頁面的一些屬性。下面的兩張圖中標紅的部分分別爲列表頁的標題、作者以及詳情頁的發佈時間,點擊列表頁的標題鏈接會跳轉到詳情頁面。

現在開始從頭到尾介紹一下整個步驟,其實很簡單:

1、在瀏覽器訪問上面說的這個地址,然後調出 Web Scraper ,Create Sitemap ,輸入一個名稱和 Start URL,然後保存。

2、之後打開這個 sitemap ,點擊 Add new selector。

3、輸入 Id,Type 選擇爲 Element,點擊 Select 在頁面中選擇列表區域,並勾選 Multiple ,保存。最後預覽效果如下:

4、回到剛剛創建的 root selector,點擊進入子 selector 頁面,添加子 selector。

5、進入子 selector 頁面後,點擊 Add new selector,這一步是爲了加一個跳轉 selector ,爲之後到詳情頁面搭個橋。依然是填寫 Id,Type 選擇爲 Link 類型,點擊 selector ,選擇點擊跳轉的鏈接,這裏就是標題,之後預覽效果如下:

6、這一步完成後,下面就要到詳情頁選擇我們需要的內容了。點擊剛剛創建的 jump 跳轉 selector,點擊進入它的下一級 selector 界面。這一步好多同學不知道怎麼操作了,好多同學也就卡在了這一步,其實很簡單。就在當前頁面,把地址欄的地址變爲任意一個詳情頁的地址。

7、繼續 Add new selector ,輸入Id,類型選擇 text 即可,點擊 select ,選擇日期部分,最後保存。如果需要其他信息,依次添加 selector 即可。

8、最後運行,抓出來的結果是這樣的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章