Web Scraper 是一款免費的,適用于普通用戶(不需要專業(yè) IT 技術的)的爬蟲工具,可以方便的通過鼠標和簡單配置獲取你所想要數(shù)據(jù)。例如知乎回答列表、微博熱門、微博評論、電商網(wǎng)站商品信息、博客文章列表等等。這一切僅僅只需要下載谷歌瀏覽器,安裝web scraper插件,即可滿足點哪爬哪超級懶人的需求。
安裝過程
下載好Google Chrome 瀏覽器,webscraper 安裝包鏈接:? https://pan.baidu.com/s/150OAb1G85rtkAW55gOdl_g? ?密碼: b9ch
1、在線訪問web scraper插件,點擊 “添加至 CHROME”。

2、然后點擊彈出框中的“添加擴展程序”

3、安裝完成后在頂部工具欄顯示 Web Scraper 的圖標。

本地安裝方式
1、打開 Chrome,在地址欄輸入chrome://extensions/,進入擴展程序管理界面,然后將下載好的擴展插件 Web-Scraper_v0.3.7.crx 拖拽到此頁面,點擊“添加到擴展程序”即可完成安裝。如圖:

2、安裝完成后在頂部工具欄顯示 Web Scraper 的圖標。

初識 web scraper
打開 Web Scraper
開發(fā)人員可以路過看后面了
windows 系統(tǒng)下可以使用快捷鍵 F12,有的型號的筆記本需要按 Fn+F12;
Mac 系統(tǒng)下可以使用快捷鍵 command+option+i ;
也可以直接在 Chrome 界面上操作,點擊設置—>更多工具—>開發(fā)者工具

打開后的效果如下,其中綠色框部分是開發(fā)者工具的完整界面,紅色框部分是 Web Scraper 區(qū)域,也就是我們之后要操作的部分。

注意:如果打開開發(fā)者工具在瀏覽器的右側區(qū)域,則需要調(diào)節(jié)開發(fā)者工具位置到瀏覽器底部。

原理及功能說明
數(shù)據(jù)爬取的思路一般可以簡單概括如下:
1、通過一個或多個入口地址,獲取初始數(shù)據(jù)。例如一個文章列表頁,或者具有某種規(guī)則的頁面,例如帶有分頁的列表頁;
2、根據(jù)入口頁面的某些信息,例如鏈接指向,進入下一級頁面,獲取必要信息;
3、根據(jù)上一級的鏈接繼續(xù)進入下一層,獲取必要信息(此步驟可以無限循環(huán)下去);
原理大致如此,接下來正式認識一下 Web Scraper 這個工具,來,打開開發(fā)者工具,點到 Web Scraper 這個標簽欄,看到分為三個部分:

Create new sitemap:首先理解 sitemap ,字面意思網(wǎng)站地圖,這里可以理解為一個入口地址,可以理解為其對應一個網(wǎng)站,對應一個需求,假設要獲取知乎上的一個問題的回答,就創(chuàng)建一個 sitemap ,并將這個問題所在的地址設置為sitemap 的 Start URL,然后點擊 “Create Sitemap”即可創(chuàng)建一個 sitemap。

Sitemaps:sitemap 的集合,所有創(chuàng)建過的 sitemap 都會在這里顯示,并且可以在這里進入一個 sitemap 進行修改和數(shù)據(jù)抓取等操作。

Sitemap:進入某個 sitemap ,可以進行一系列的操作,如下圖:

其中紅色框部分 Add new selector 是必不可少的步驟。selector 是什么呢,字面意思:選擇器,一個選擇器對應網(wǎng)頁上的一部分區(qū)域,也就是包含我們要收集的數(shù)據(jù)的部分。
需要解釋一下,一個 sitemap 下可以有多個 selector,每個 selector 有可以包含子 selector ,一個 selector 可以只對應一個標題,也可以對應一整個區(qū)域,此區(qū)域可能包含標題、副標題、作者信息、內(nèi)容等等信息。
Selectors:查看所有的選擇器。
Selector graph:查看當前 sitemap 的拓撲結構圖,根節(jié)點是什么,包含幾個選擇器,選擇器下包含的子選擇器。
Edit metadata:可以修改 sitemap 信息,標題和起始地址。
Scrape:開始數(shù)據(jù)抓取工作。
Export data as CSV:將抓取的數(shù)據(jù)以 CSV 格式導出。
到這里,有一個簡單的認識就可以了,實踐出真知,具體的操作案例才具有說服力,下面就以知乎問題的例子來說一說具體的用法。
抓取知乎問題所有回答
知乎的特點是,頁面向下滾動才會加載后面的回答
1、首先還是在 Chrome 中打開這個鏈接,鏈接地址為:https://www.zhihu.com/question/30692237,并調(diào)出開發(fā)者工具,定位到Web Scraper 標簽欄;
2、Create new sitemap,填寫 sitemap name 和 start url;

3、接下來,開始添加選擇器,點擊 Add new selector;
4、先來分析一下知乎問題的結構,如圖,一個問題由多個這種區(qū)域組成,一個區(qū)域就是一個回答,這個回答區(qū)域包括了昵稱、贊同數(shù)、回答內(nèi)容和發(fā)布時間等。紅色框住的部分就是我們要抓取的內(nèi)容。所以我們抓取數(shù)據(jù)的邏輯是這樣的:由入口頁進入,獲取當前頁面已加載的回答,找到一個回答區(qū)域,提取里面的昵稱、贊同數(shù)、回答內(nèi)容,之后依次向下執(zhí)行,當已加載的區(qū)域獲取完成,模擬向下滾動鼠標,加載后續(xù)的部分,一直循環(huán)往復,直到全部加載完畢;

5、內(nèi)容結構的拓撲圖如下,_root 根節(jié)點下包含若干個回答區(qū)域,每個區(qū)域下包含昵稱、贊同數(shù)、回答內(nèi)容;

6、按照上面這個拓撲圖,開始來創(chuàng)建選擇器,填寫 selector id 為 answer(隨意填),Type 選擇 Element scroll down 。解釋一下:Element 就是針對這種大范圍區(qū)域的,這個區(qū)域還要包含子元素,回答區(qū)域就對應 Element,因為要從這個區(qū)域獲取我們所需的數(shù)據(jù),而 Element scroll down 是說這個區(qū)域利用向下滾動的方式可以加載更多出來,就是針對這種下拉加載的情況專門設計的。

7、接下來點擊 Select,然后鼠標到頁面上來,讓當綠色框框住一個回答區(qū)域后點擊鼠標,然后移動到下一個回答,同樣當綠色框框住一個回答區(qū)域后點擊鼠標。這時,除了這兩個回答外,所有的回答區(qū)域都變成了紅色框,然后點擊"Done selecting!”,最后別忘了選擇 Multiple ,之后保存;

8、接下來,單擊紅色區(qū)域,進入剛剛創(chuàng)建的 answer 選擇器中,創(chuàng)建子選擇器;

9、創(chuàng)建昵稱選擇器,設置 id 為 name,Type 設置為 Text,Select 選擇昵稱部分,如果沒經(jīng)驗的話,可能第一次選的不準,發(fā)現(xiàn)有錯誤,可以調(diào)整,保存即可;

10、創(chuàng)建贊同數(shù)選擇器;

11、創(chuàng)建內(nèi)容選擇器,由于內(nèi)容是帶有格式的并且較長,所以有個技巧,從下面選擇會比較方便;

12、執(zhí)行 Scrape 操作,由于內(nèi)容較多,可能需要幾分鐘的時間,如果是為了做測試,可以找一個回答數(shù)較少的問題做測試。
