天天看點

Web Scraper——輕量資料爬取利器

Web Scraper——輕量資料爬取利器

Web Scraper 爬蟲學習,看這一篇文章就夠了

Web Scraper——輕量資料爬取利器

日常學習工作中,我們多多少少都會遇到一些資料爬取的需求,比如說寫論文時要收集相關課題下的論文清單,營運活動時收集使用者評價,競品分析時收集友商資料。

當我們着手準備收集資料時,面對低效的複制黏貼工作,一般都會萌生一個想法:我要是會爬蟲就好了,分分鐘就把資料爬取下來了。可是當我們搜尋相關教程時,往往會被高昂的學習成本所勸退。拿現在最通用的 python 爬蟲來說,對于小白來說往往要跨過下面幾座大山:

Web Scraper——輕量資料爬取利器
  • 學習一門程式設計語言:python
  • 學習網頁的基礎構成——HTML 标簽和 CSS 選擇器,有時候還要了解一些 JavaScript
  • 學習網絡通信的基礎協定——HTTP 協定
  • 學習 python 中常見的爬蟲架構和解析庫
  • ......

上面的知識點,沒有幾個月是掌握不完的。而且對于非強需求的人來說,這麼多的知識點,你還會時時刻刻和遺忘做鬥争。

那麼有沒有不學 python 也能爬取資料的利器呢?結合文章标題,我想你已經知道我要安利什麼了。今天我要推薦的就是Web Scraper,一個輕量的資料爬蟲利器。

Web Scraper——輕量資料爬取利器

Web Scraper 的優點就是對新手友好,在最初抓取資料時,把底層的程式設計知識和網頁知識都屏蔽了,可以非常快的入門,隻需要滑鼠點選幾下,幾分鐘就可以搭建一個自定義的爬蟲。

我在過去的半年裡,寫了很多篇關于 Web Scraper 的教程,本文類似于一篇導航文章,把爬蟲的注意要點和我的教程連接配接起來。最快一個小時,最多一個下午,就可以掌握 Web Scraper 的使用,輕松應對日常生活中的資料爬取需求。

插件安裝

Web Scraper 作為一個 Chrome 插件,網絡條件良好的使用者可以直接上chrome 網上應用店安裝,不太好的使用者可以下載下傳插件安裝包手動安裝,具體的安裝流程可以看我的教程:Web Scraper 的下載下傳與安裝。

常見網頁的類型

結合我的資料爬取經驗和讀者回報,我一般把網頁分為三大類型:單頁、分頁清單和篩選表單。

Web Scraper——輕量資料爬取利器

1.單頁

單頁是最常見的網頁類型。

我們日常閱讀的文章,推文的詳情頁都可以歸于這種類型。作為網頁裡最簡單最常見的類型,Web Scraper 教程裡第一篇爬蟲實戰就拿豆瓣電影作為案例,入門 Web Scraper 的基礎使用。

2.分頁清單

分頁清單也是非常常見的網頁類型。

網際網路的資源可以說是無限的,當我們通路一個網站時,不可能一次性把所有的資源都加載到浏覽器裡。現在的主流做法是先加載一部分資料,随着使用者的互動操作(滾動、篩選、分頁)才會加載下一部分資料。

教程裡我費了較大的筆墨去講解 Web Scraper 如何爬取不同分頁類型網站的資料,因為内容較多,我放在本文的下一節詳細介紹。

3.篩選表單

表單類型的網頁在 PC 網站上比較常見。

這種網頁的最大特點就是有很多篩選項,不同的選擇會加載不同的資料,組合多變,互動較為複雜。比如說淘寶的購物篩選頁。

Web Scraper——輕量資料爬取利器

比較遺憾的是,Web Scraper 對複雜篩選頁的支援不是很好,如果篩選條件可以反映在 URL 連結上就可以爬取相關資料,如果不能就無法爬取篩選後的資料。

常見的分頁類型

分頁清單是很常見的網頁類型。根據加載新資料時的互動,我把分頁清單分為 3 大類型:滾動加載、分頁器加載和點選下一頁加載。

Web Scraper——輕量資料爬取利器

1.滾動加載

Web Scraper——輕量資料爬取利器

我們在刷朋友圈刷微網誌的時候,總會強調一個『刷』字,因為看動态的時候,當把内容拉到螢幕末尾的時候,APP 就會自動加載下一頁的資料,從體驗上來看,資料會源源不斷的加載出來,永遠沒有盡頭。

Web Scraper 有一個選擇器類型叫

Element scroll down

,意如其名,就是滾動到底部加載的意思。利用這個選擇器,就可以抓取滾動加載類型的網頁,具體的操作可以見教程:Web Scraper 抓取「滾動加載」類型網頁。

2.分頁器加載

Web Scraper——輕量資料爬取利器

分頁器加載資料的網頁在 PC 網頁上非常常見,點選相關頁碼就能跳轉到對應網頁。

Web Scraper 也可以爬取這種類型的網頁。相關的教程可見: Web Scraper 控制連結分頁、Web Scraper 抓取分頁器類型網頁 和 Web Scraper 利用 Link 選擇器翻頁。

3.點選下一頁加載

點選下一頁按鈕加載資料其實可以算分頁器加載的一種,相當于把分頁器中的「下一頁」按鈕單獨拿出來自成一派。

這種網頁需要我們手動點選加載按鈕來加載新的資料。Web Scraper 可以

Element click

選擇器抓取這種分頁網頁,相關教程可見:Web Scraper 點選「下一頁」按鈕翻頁。

進階使用

學習了上面列出的幾篇教程,Web Scraper 這個插件 60% 的功能基本上就掌握了。下面是一些進階内容,掌握了可以更高效的抓取資料。

1.清單頁 + 詳情頁

Web Scraper——輕量資料爬取利器

網際網路資訊最常見的架構就是「清單頁 + 詳情頁」的組合結構了。

清單頁是内容的标題和摘要,詳情頁是詳細說明。有時候我們需要同時抓取清單頁和詳情頁的資料,Web Scraper 也支援這種常見的需求。我們可以利用 Web Scraper 的 Link 選擇器來抓取這種組合網頁,具體操作可以看教程:Web Scraper 抓取二級網面。

2.HTML 标簽與 CSS 選擇器

Web Scraper——輕量資料爬取利器

我在前面說了 Web Scraper 屏蔽了一些網頁知識,比如說 HTML 和 CSS 的一些内容,隻需要簡單的滑鼠點選就可以搭建一個自定義爬蟲。但是如果我們花半個小時了解一些基礎的 HTML 和 CSS 知識,其實可以更好的使用 Web Scraper。是以我專門寫了一篇介紹 CSS 選擇器的文章,十分鐘讀下來可以上手自定義 CSS 選擇器。

3.正規表達式的使用

Web Scraper——輕量資料爬取利器

Web Scraper 其實是一款專注于文本爬取的爬蟲工具。如果你日常工作中經常和文本打交道,或者使用過一些效率工具,那你一定聽說過正規表達式。沒錯,Web Scraper 也支援基礎的正規表達式,用來篩選和過濾爬取的文本,我也寫了一篇文章介紹正規表達式,如果爬取過程中使用它,可以節省不少資料清洗的時間。

4.Sitemap 的導入和導出

SItemap 是個什麼東西?其實它就是我們操作 Web Scraper 後生成的配置檔案,相當于 python 爬蟲的源代碼。我們可以通過分享 Sitemap 來分享我們制作的爬蟲,相關操作我也寫了教程:Web Scraper 導入導出爬蟲配置。

5.換一個存儲資料庫

Web Scraper——輕量資料爬取利器

Web Scraper 導出資料時有一個缺點,預設使用浏覽器的 localStorage 存儲資料,導緻存儲的資料是亂序的。這種情況可以通過 Excel 等軟體進行排序,也可以通過換一個資料存儲庫的方式來解決。

Web Scraper 支援 CouchDB 資料庫,配置成功後導出的資料就是正序了。相關的配置過程可以看我寫的教程:Web Scraper 使用 CouchDB。

Web Scraper 的優點

  • 輕量:非常的輕量。上手隻需要一個 Chrome 浏覽器和一個 Web Scraper 插件。對于一些限制安裝第三方軟體的公司電腦,可以很輕易的突破這層限制
  • 提效:Web Scraper 支援絕大多數的網頁的爬取,可以無侵入的加入你的日常工作流中
  • 快:抓取速度取決于你的網速與浏覽器加載速度,其他的資料采集軟體可能有限速現象(充錢就能不限速)

Web Scraper 的缺點

  • 隻支援文本資料抓取:圖檔短視訊等多媒體資料無法批量抓取
  • 不支援範圍抓取:例如一個網頁有 1000 條資料,預設是全量抓取的,無法配置抓取範圍。想停止抓取,隻能斷網模拟資料加載完畢的情況
  • 不支援複雜網頁抓取:對于那些加了複雜互動、酷炫的特效和反人類的反爬蟲網頁,Web Scraper 無能為力(其實這種網頁寫 python 爬蟲也挺頭疼)
  • 導出資料亂序:想讓資料正序就得用 Excel 或者用 CouchDB,相對複雜了一些

總結

掌握了 Web Scraper 的使用,基本上可以應付學習工作中 90% 的資料爬取需求。相對于 python 爬蟲,雖然靈活度上受到了限制,但是低廉的學習成本可以大大節省學習時間,快速解決手頭的工作,提高整體的工作效率。綜合來看,Web Scraper 還是非常值得去學習的。

聯系我

因為文章發在各大平台上,賬号較多不能及時回複評論和私信,有問題可關注公衆号 ——「鹵蛋實驗室」,(或 wx 搜尋 egglabs)關注上車防失聯。