
網路爬蟲這領域,一直就是諜對諜的局面,一邊努力攻破一邊努力防堵,也很多工具,最近使用了真免費的網頁擴充套件Web Scraper在商業網站上,分享幾個注意事項。
首先,新手如我,預設操作只能爬到第一層資料,如圖片、文字等等,抓不到巢狀資料,其實只要進行細部設定即可,很多時候新手會在這邊卡關,白白浪費時間,如果你能早點看到我這篇,就能降低你的學習時間。
簡單說就是以下概念:
1. 建立根目錄(Root / Element Selector)
• 在 Sitemaps 建立一個 Selector(例如命名為 element-parent)。
• Type 選擇 Element。
• Multiple 請打勾(如果頁面上有清單或多個項目)。
• 點選頁面上的外框區塊,把每個項目包起來。
2. 建立子層連結(Link Selector,若需進入詳情頁)
• 進入剛剛建立的 element-parent(雙擊進入該 Selector 的層級內)。
• 建立一個新的 Selector(例如命名為 link-detail),Type 選擇 Link。
• 選取該項目中可以點擊進入詳細頁面的超連結文字或圖片。
• Multiple 依需求勾選。
3. 在子層內建立要抓取的資料欄位(Text, Image, Table 等)
• 雙擊進入剛剛的 link-detail Selector 裡面。
• 這時你在 Web Scraper 的路徑導覽會呈現:_root > element-parent > link-detail。
• 在這裡建立你要從詳情頁抓取的欄位(例如:title、price、description),Type 設為 Text 或其他適當類型。
4. 設定「商品連結」Link 選擇器(巢狀結構連結)
例如外層的 Div 沒有連結,你需要進到裡面一層去尋找真正的 <a> 標籤。
• 先雙擊進入剛才建立的Link Selector。
• 新增一個 Selector:
• Id: product-link (可自訂)
• Type: 選擇 Link。
• Selector: 直接手動輸入 a[data-sqe="link"] (個案不同)
• Multiple: 不要打勾(因為在每一個商品外框裡,連結只有一個)。
細節再根據你要爬的頁面不同,而設定不同關鍵字,畢竟每個網站都不想輕易地被人爬蟲,這次的網站,商品頁面外框在 HTML 裡已不是傳統的 <a> 標籤,而是普通的 <div> 加上 JavaScript 點擊跳轉,或者連結隱藏在更深的層級中。
另個大網站把原本的防爬屬性拔掉,改成了完全用 Tailwind CSS 類名包裝的結構,將超連結藏在最外層進來的第一個 <a> 標籤的 href 屬性裡,所以還是必須定期檢視目標的網頁架構。
沒有留言:
張貼留言