今天說一個不用寫程式碼,怎麼來抓取資料的方式,這種方式能滿足相當部分人群的需求。
爬資料通常要用程式寫一段網路請求程式碼來獲取網頁,遇到有些網頁是非同步載入或者用JS混淆了,又要耗費精力去分析。尤其是很多爬蟲選手是非專業選手,寫起程式碼其實挺吃力的,在我的瞭解來看大部分公司或者爬資料的需求都是一次性的,而且獲取資料的量級很小,萬或數十萬條資料這樣的規模,而且是一次性的。這可以不用去開發程式,使用一些工具就能辦到,比如Web Scraper工具。
Web Scraper
Web Scraper是一個網頁抓取工具,不需要複雜的安裝配置,是以Chrome 外掛的形式執行在Chrome瀏覽器上。不用擔心抓取的網頁是否非同步載入或者有JS混淆之類的,是所見即所得的抓取方式,熟練情況下抓取資料只需要花10-20分鐘完成配置就能開始抓取(寫程式碼可能需要數小時乃至數天)。非常適合一次性/短期/非爬蟲專業選手爬資料的需求。
演示一下,比如我們要抓這個網站URL下面的商店名稱和使用者評論。
如何安裝和配置Web Scraper?
1.Chrome瀏覽器裡的外掛商店裡搜尋Web Scraper即可安裝,如果你不能訪問Chrome外掛商店,在猿人學Python公眾號回覆 Web Scraper ,可以在本地安裝Chrome外掛,怎麼操作就不再贅述了。
2.安裝好Web Scraper外掛後,開啟Chrome瀏覽器的開發者工具,能看到Web Scraper選項代表安裝成功。
3.配置抓取規則
配置也很簡單,先科普下,我們在寫程式抓取網頁時,通常需要一個入口頁面(這個頁面通常是一個頻道頁,列表頁之類的),程式抽取入口頁面的URL,接著訪問這些URL再抽取裡面我們需要的詳細資訊。
比如,要抽取點評網上的私房菜分類下的店名和小店裡面的評論。我們首先需要一個入口頁面(即 私房菜頻道的URL),抽取該頁面裡的小店URL,程式訪問這些小店URL,再抽取小店裡面的店名,評論等資訊。
配置Web Scraper也是一樣的道理,需要一個入口頁面(Start URL),然後配置抽取入口頁面的URL規則,配置好後緊接著再配置抽取詳細頁資訊的規則。詳細的Web Scraper教程可以檢視原文,我在猿人學網站上寫了個簡單的Web Scraper配置教程。
比如你要抓取點評網私房菜頻道里的小店和點評評論。
第一步把私房菜頻道的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最直觀:
完全是視覺化操作,Type裡選擇Link,Selector上選擇Select,然後滑鼠先選幾下頁面上的小店,自動把抽取小店url的xpath規則就寫好了。點選Data preview可以檢查和預覽抽取規則是否生效。
第三步常見抽取小店詳細頁資訊的規則,比如抽取評論:
熟練的話,10-20分鐘就能配置好一個抓取規則,當然更復雜的資料抽取規則你可以看它官網的文件。
https://www.webscraper.io/documentation
使用Web Scraper這種抓取方法一次抓取上千條資料不成問題,適用想少量抓取用來資料分析,或者補充抓取資料。當然再配合使用切換代理ip軟體的話,也可以做到長時間大量抓取資料用,只是效率沒那麼高。
總結Web Scraper的優點:
1.可以抓取動態載入的資料,比如通過ajax翻頁的資料;
2.抓取的資料可以CSV檔案格式匯出到本地;
3.抓取需要登入的資料較方便,因為這個外掛是執行在瀏覽器上的;
4.不用擔心JS/CSS混淆資料;
5.配置簡單,視覺化配置抽取規則。
我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。
***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***