不用寫程式碼的爬蟲

王平發表於2019-06-17

今天說一個不用寫程式碼,怎麼來抓取資料的方式,這種方式能滿足相當部分人群的需求。

爬資料通常要用程式寫一段網路請求程式碼來獲取網頁,遇到有些網頁是非同步載入或者用JS混淆了,又要耗費精力去分析。尤其是很多爬蟲選手是非專業選手,寫起程式碼其實挺吃力的,在我的瞭解來看大部分公司或者爬資料的需求都是一次性的,而且獲取資料的量級很小,萬或數十萬條資料這樣的規模,而且是一次性的。這可以不用去開發程式,使用一些工具就能辦到,比如Web Scraper工具。

 

Web Scraper

Web Scraper是一個網頁抓取工具,不需要複雜的安裝配置,是以Chrome 外掛的形式執行在Chrome瀏覽器上。不用擔心抓取的網頁是否非同步載入或者有JS混淆之類的,是所見即所得的抓取方式,熟練情況下抓取資料只需要花10-20分鐘完成配置就能開始抓取(寫程式碼可能需要數小時乃至數天)。非常適合一次性/短期/非爬蟲專業選手爬資料的需求。

web scraper官方頁面

演示一下,比如我們要抓這個網站URL下面的商店名稱和使用者評論。

建立web scraper sitemap

如何安裝和配置Web Scraper?

1.Chrome瀏覽器裡的外掛商店裡搜尋Web Scraper即可安裝,如果你不能訪問Chrome外掛商店,在猿人學Python公眾號回覆 Web Scraper ,可以在本地安裝Chrome外掛,怎麼操作就不再贅述了。

2.安裝好Web Scraper外掛後,開啟Chrome瀏覽器的開發者工具,能看到Web Scraper選項代表安裝成功。

檢查web scraper是否安裝

3.配置抓取規則

配置也很簡單,先科普下,我們在寫程式抓取網頁時,通常需要一個入口頁面(這個頁面通常是一個頻道頁,列表頁之類的),程式抽取入口頁面的URL,接著訪問這些URL再抽取裡面我們需要的詳細資訊。

比如,要抽取點評網上的私房菜分類下的店名和小店裡面的評論。我們首先需要一個入口頁面(即 私房菜頻道的URL),抽取該頁面裡的小店URL,程式訪問這些小店URL,再抽取小店裡面的店名,評論等資訊。

配置Web Scraper也是一樣的道理,需要一個入口頁面(Start URL),然後配置抽取入口頁面的URL規則,配置好後緊接著再配置抽取詳細頁資訊的規則。詳細的Web Scraper教程可以檢視原文,我在猿人學網站上寫了個簡單的Web Scraper配置教程。

比如你要抓取點評網私房菜頻道里的小店和點評評論。

第一步把私房菜頻道的URL當著Start URL。

建立start url

如果你想翻頁的話,檢查一下點評網的翻頁規則,它的翻頁是這樣:

第二頁

http://www.dianping.com/shanghai/ch10/g1338p2

第三頁

http://www.dianping.com/shanghai/ch10/g1338p3

就可以把翻頁規則寫成這樣

http://www.dianping.com/shanghai/ch10/g1338p[0-5]

表示從第1頁翻到第5頁

 

第二步建立一個抽取入口頁面裡URL的規則,即抽取小店URL,看gif最直觀:
建立web scraper link selector

完全是視覺化操作,Type裡選擇Link,Selector上選擇Select,然後滑鼠先選幾下頁面上的小店,自動把抽取小店url的xpath規則就寫好了。點選Data preview可以檢查和預覽抽取規則是否生效。

 

第三步常見抽取小店詳細頁資訊的規則,比如抽取評論:
建立web scraper text selector

熟練的話,10-20分鐘就能配置好一個抓取規則,當然更復雜的資料抽取規則你可以看它官網的文件。

https://www.webscraper.io/documentation

使用Web Scraper這種抓取方法一次抓取上千條資料不成問題,適用想少量抓取用來資料分析,或者補充抓取資料。當然再配合使用切換代理ip軟體的話,也可以做到長時間大量抓取資料用,只是效率沒那麼高。

 

總結Web Scraper的優點:

1.可以抓取動態載入的資料,比如通過ajax翻頁的資料;

2.抓取的資料可以CSV檔案格式匯出到本地;

3.抓取需要登入的資料較方便,因為這個外掛是執行在瀏覽器上的;

4.不用擔心JS/CSS混淆資料;

5.配置簡單,視覺化配置抽取規則。

猿人學banner宣傳圖

我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。

***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***

相關文章