作者: 憶蓉之心;
來源:Java面試那些事兒

最近,有同學問我。

我不想寫代碼,如何快速爬取幾個數據量不太大的網頁?


這個需求,估計大家很多時候都會遇到,比如,你想爬取秒殺頁面的商品信息進行對比;你想爬取國家統計局官網發佈的你感興趣的數據;等等。

既然說到這裏,我就簡單的介紹一下網絡爬蟲。網絡爬蟲的主要目的是爬取互聯網上的網頁。你可以把互聯網中的每一個網頁想象成一個點,那麼整個互聯網將是彼此連通的。是不是很像我們大學學過的圖論?如果從任何一個網頁出發,在時間資源允許的情況下,使用廣度優先算法(BFS)或者深度優先算法(DFS)是可以爬完整個互聯網的。對這兩種算法不太熟悉的同學可以去背書了。

下面以比較流行的 Scrapy 架構圖爲例,流線爲數據流向。


一款你必須會用的 Chrome 爬蟲插件



看了這幅圖,是不是對一般的爬蟲有了大致的瞭解了。

專業的網絡爬蟲(比如百度/谷歌的爬蟲)爲了節約資源和時間,因此,設計是相當複雜的。這些爬蟲一般是基於分佈式集羣構建的,有些機子負責調度,有些機子負責下載,有些機子專門基於網頁進行分析,等等。並非簡單的用 BFS/DFS 就能解決的,比如,我們以調度器爲例,它就需要來管理下載優先級,當引擎發送過來 Request 請求,就需要按照優先級進行整理排列,入隊,當引擎需要時,交還給引擎。

雖然關於各種語言的爬蟲框架很多,要是用這些框架來爬這點數據,確實有點大材小用了,而且還得要編碼調試,各種麻煩!!!

我發現 Chrome 商店裏面有一款爬蟲插件,剛好解決這個痛點,它的名字叫做 Web Scraper,目前有 22w 的用戶下載。


一款你必須會用的 Chrome 爬蟲插件



官方網址:https://www.webscraper.io


這個爬蟲操作特別簡單,照着官方文檔,幾分鐘就學會了。

我這裏就說幾個關鍵點吧。

1、啓動

一般初次使用,不知道怎麼打開它,用快捷鍵 ctrl+shift+i 打開開發者工具。



一款你必須會用的 Chrome 爬蟲插件



sitemaps:你所有的爬蟲。

create new sitemap:創建一個新爬蟲的起始地址。

2、選擇器


一款你必須會用的 Chrome 爬蟲插件



對於一個選擇器而言,就有如下幾種元素,它主要作用是爲爬蟲分析網頁的功能,提供了可視化選擇的功能,如下圖所示。


一款你必須會用的 Chrome 爬蟲插件



好了,再來細說一下,選擇器內部的幾個元素。

Id: 選擇器的ID;

Type:要抓取內容的類型,有文本、圖片以及元素集等;

Selector:選擇器。點擊 select 按鈕可以選擇我們要抓取的內容,點擊 element preview 按鈕可以預覽選擇的內容,而點擊 data preview 按鈕可以預覽抓取的數據;


Multiple:勾選了這個按鈕可以並聯相同的內容;

Regex:正則表達式;

Delay:延遲。爲了讓頁面有足夠的時間加載數據;

Parent Selectors:父選擇器。

有的同學可能會問,如果我要在一個頁面選擇多個元素,該怎麼辦呢?上面的提到的 Type 屬性裏面的 Element 就起到這個作用,如我這裏。


一款你必須會用的 Chrome 爬蟲插件



3、關係圖

我覺得這個功能特別棒,幫我們看到這個爬蟲的層級關係圖。


一款你必須會用的 Chrome 爬蟲插件



最後,就是爬取數據了,爬取後的數據還可以導出爲 excel,便於你分析。


一款你必須會用的 Chrome 爬蟲插件



大家可以去玩一下這個爬蟲插件,會幫你快速分析一些簡單的數據。

就寫到這裏吧。

由於長期的熬夜,造成近段時間身體不適,需要好好調養。建議大家早點休息,身體是革命的本錢。

如果這篇文章對你有幫助,記得點贊或者轉發一下。

相關文章