學(xué)會用web scraper批量收集數(shù)據(jù),讓你的工作效率高到飛起

在工作中,幾乎每個崗位都會涉及到數(shù)據(jù)收集的任務(wù)。收集本地所有裝修公司的名單,收集某個APP的所有評論,收集網(wǎng)上所有與**相關(guān)的文章,批量下載某網(wǎng)站的指定文件……

不會編程,不懂爬蟲技術(shù)的我,曾經(jīng)遇到這種工作,要么苦逼的CTRL+C,CTRL+V,要么賠著笑求技術(shù)人員幫忙爬取數(shù)據(jù)。直到我遇到web scraper這個神器,無需編程經(jīng)驗,簡單幾步設(shè)置后,幾分鐘就能快速收集上千條數(shù)據(jù),效率高到飛起。

web scraper是一個谷歌爬蟲插件,使用起來非常簡單,30分鐘即可完全掌握。web scraper插件會將數(shù)據(jù)爬取出來生成excel表格,供我們使用。

那么這款插件到底要怎么用呢?

爬取數(shù)據(jù)的基本流程

step1:下載和安裝web scraper插件。

下載地址:鏈接: http://pan.baidu.com/s/1qXVbqUg 密碼: t7bm

安裝方法:參考百度經(jīng)驗文章http://jingyan.baidu.com/article/da1091fbdf12e9027949d673.html

step2:創(chuàng)建一個新的數(shù)據(jù)爬取站點。

首先按F12(或者點擊鼠標(biāo)右鍵--檢查)調(diào)出控制臺,點擊“Web Scraper”切換到爬蟲插件功能,點擊create new sitemap進入新的數(shù)據(jù)爬取站點創(chuàng)建頁面。

sitemap name可以自定義,但一定要是英文。start url是我們要爬取的網(wǎng)站網(wǎng)址,這里我們爬取豆瓣網(wǎng)上上海近一周的同城活動,將如下鏈接復(fù)制到start url輸入框中,然后點擊“create sitemap”確定創(chuàng)建。https://shanghai.douban.com/events/week-all?start=0

step3:選擇需要提取的頁面元素

上一步創(chuàng)建成功之后,頁面會跳轉(zhuǎn)到如下界面,這時我們點擊“add new selector”創(chuàng)建一個新的選擇器。

以提取該頁面活動標(biāo)題為例,設(shè)置ID為“title”(此處可以自定義,將會成為excel中的表頭),type為“text”。

selector指的是頁面中需要提取的數(shù)據(jù)區(qū)域。點擊select,鼠標(biāo)在網(wǎng)頁上滑動,會出現(xiàn)綠色區(qū)域,表示這些區(qū)域的數(shù)據(jù)我們是可以選擇的。

選中一個活動標(biāo)題,這個區(qū)域會被紅色邊框包圍,再繼續(xù)選中下一個活動標(biāo)題。當(dāng)選中兩個相同區(qū)域時,插件會自動選中該頁面上其他的同類元素。點擊“Done selecting!”確定選中。

我們可以點擊“Element preview”查看頁面上被選中的所有區(qū)域,點擊“Data preview”預(yù)覽爬蟲將獲取到的數(shù)據(jù)。

注意:由于我們要選擇這個頁面上的所有活動標(biāo)題,因此需要將”Multiple“復(fù)選框選中。剩下的內(nèi)容可以保持默認(rèn),點擊”Save selector“保存這個選擇器。

到這里,我們就選擇好了需要提取的頁面元素,如下圖所示。

step4:開始爬取數(shù)據(jù)

點擊scrape,進入數(shù)據(jù)爬取啟動頁面。

設(shè)置request interval 和page load delay時間,點擊”Start scraping“開始爬取數(shù)據(jù)。這里的時間間隔主要是為了避免因操作太頻繁導(dǎo)致爬蟲被屏蔽,無法正常爬取。一般的網(wǎng)站默認(rèn)時間間隔就可以,有些網(wǎng)站可能需要設(shè)置大一點的時間間隔。

開始后,會打開一個目標(biāo)網(wǎng)址的窗口,爬蟲根據(jù)提取設(shè)置好的規(guī)則一一爬取,當(dāng)爬取完畢后,窗口會自動關(guān)閉。

step5:下載數(shù)據(jù)

點擊”Export data as CSV“跳轉(zhuǎn)到excel數(shù)據(jù)下載頁面,點擊”download now"即可下載。

以上五步就是使用web scraper爬取數(shù)據(jù)的全部流程和操作。無論是多復(fù)雜的數(shù)據(jù),都可以按照這樣的流程和操作爬取到對應(yīng)的數(shù)據(jù)。

進階操作

1,如何一次性爬取一組數(shù)據(jù)?

剛剛我們僅僅爬取了活動主題,如果我們要同時爬取活動主題和活動時間,應(yīng)該怎么處理呢?

從上圖中可以看到數(shù)據(jù)的結(jié)構(gòu),活動主題和活動時間同時被包含在最外層的方框中,因此在設(shè)置選擇器的時候,先創(chuàng)建一個大的選擇器,讓活動主題和活動內(nèi)容同時被包含起來。

注意這里的Type要設(shè)置成“Element”.保存后點擊剛才創(chuàng)建的內(nèi)容(下圖紅框的位置)進入子頁。

然后在這個頁面分別創(chuàng)建標(biāo)題選擇器和時間選擇器。其類型都是text。現(xiàn)在頁面的可選區(qū)域被局限在了list這個區(qū)域,因此你只需要點擊一次活動標(biāo)題,確定選中即可。不用勾選“Multiple”。

只有創(chuàng)建一個element選擇器將活動主題和活動時間包含起來,爬取到的數(shù)據(jù)才會一一對應(yīng)的呈現(xiàn)出來。

2,如何一次性爬取多頁內(nèi)容?

這里根據(jù)分頁形式的不同,有不同的解決辦法。

1)固定分頁情況下

可以注意到豆瓣同城活動的頁面時做了分頁的,每頁顯示10條數(shù)據(jù)。那么如果我們要爬取前10頁的數(shù)據(jù),應(yīng)該怎么做呢?

仔細觀察,會發(fā)現(xiàn)第一頁的網(wǎng)址和第二頁的網(wǎng)址是有區(qū)別的。

第一頁:https://shanghai.douban.com/events/week-all?start=0

第二頁:https://shanghai.douban.com/events/week-all?start=10

start=后面的數(shù)字是差為10的等差數(shù)列。

那么我們在設(shè)置數(shù)據(jù)爬取站點的時候,用[0-100:10]替代具體的數(shù)字,表示數(shù)據(jù)爬取的頁面區(qū)間。即:https://shanghai.douban.com/events/week-all?start=[0-100:10]

如果網(wǎng)址的等差是1,例如知乎問題的網(wǎng)址:

第一頁:https://www.zhihu.com/topic/19551325/top-answers?page=1

第二頁:https://www.zhihu.com/topic/19551325/top-answers?page=2

則省略冒號和后面的等差,只寫頁碼區(qū)間。如https://www.zhihu.com/topic/19551325/top-answers?page=[1-10]

表示知乎話題第一頁到第十頁。

處理這種數(shù)據(jù)的要點就是觀察不同頁面網(wǎng)址的變化,然后將頁碼區(qū)間寫入網(wǎng)址中。

2)滾動鼠標(biāo)自動加載

目前很多網(wǎng)站采取了滾動到底部后自動加載數(shù)據(jù)的方式,其網(wǎng)址并沒有任何變化。如知乎live主頁的數(shù)據(jù)加載方式。https://www.zhihu.com/lives/

這時我們需要在創(chuàng)建element選擇器的時候,設(shè)置Type為“Element scroll down”。這樣爬蟲工作的時候會自動執(zhí)行滾動操作,不停的爬取,直到?jīng)]有可加載的數(shù)據(jù)為止。

3)點擊頁面底部“加載更多”按鈕

在設(shè)置外層element元素的時候,設(shè)置Type類型為“Element click”,然后點擊“Click selector”的“Select”按鈕選中頁面上的加載更多按鈕或者圖標(biāo)。

為了讓頁面持續(xù)不斷的加載,設(shè)置“Click type”為“Click more”,多次點擊。

接下來設(shè)置停止點擊的條件,當(dāng)這個區(qū)域的文本內(nèi)容或者HTML結(jié)構(gòu)或者顯示樣式發(fā)生改變時,不再點擊。

比如說當(dāng)加載完畢之后,“加載更多”按鈕文字改變?yōu)椤耙鸭虞d完畢”,那么這里選擇Unique Text;如果加載到最后,這個按鈕顏色變灰,就選擇Unique CSS Selector。

3,如何批量爬取并下載圖片?

設(shè)置Type為image,插件將爬取到所有圖片的鏈接。下載圖片有兩種方式,一種是直接勾選Download image,這樣爬蟲在爬取的時候就會自動下載。或者在爬取到所有圖片鏈接后,使用批量下載工具直接下載。

4,如何爬取網(wǎng)頁鏈接?

設(shè)置Type為Link,爬蟲將爬取到該元素上的超鏈接。

如圖所示:當(dāng)Type為text時,爬取到的數(shù)據(jù)是立陶宛安吉利卡·喬麗娜舞團 舞劇《安娜·卡列尼娜》 Anzelika Cholina Dance Theatre′s Anna Karenina

當(dāng)Type為Link時,爬取到的數(shù)據(jù)是:https://www.douban.com/event/28303813/,也就是點擊下圖紅框中內(nèi)容跳轉(zhuǎn)的頁面鏈接。

當(dāng)你需要爬取的鏈接是一個下載文件的鏈接,比如說類似下圖中“公告下載”按鈕的鏈接。你可以設(shè)置Type為Popup Link,這樣在爬取數(shù)據(jù)的過程中就會自動下載文件了。

5,如何爬取二級頁面或三級頁面的內(nèi)容?

首先在根目錄下創(chuàng)建一個選擇器,這個選擇器選擇的內(nèi)容是可以點進二級頁面的區(qū)域,如果該區(qū)域有超鏈接,則設(shè)置Type為Link,否則設(shè)置為Element click;然后在這個選擇器里面創(chuàng)建選擇器,選擇需要爬取的區(qū)域即可。這個可以一級一級的嵌套下去。

怎么判斷一個區(qū)域是否有超鏈接?鼠標(biāo)放在該區(qū)域,右鍵單擊,如果有“在……中打開鏈接”的選項,則這個區(qū)域有超鏈接,設(shè)置Type為Link。

通過以上的設(shè)置,我們可以利用谷歌插件爬取80%的網(wǎng)站數(shù)據(jù),獲取到本地excel文件,進而對數(shù)據(jù)進行處理和分析。


以上的技能除了可以用于工作,還可以應(yīng)用到生活中查詢資訊的時候。

很多時候網(wǎng)站的設(shè)計存在一定問題,為我們獲取資訊帶來一定困難。

比如知乎live的網(wǎng)頁,點進去一個live詳情再退回來的時候,頁面會回到頂部,需要你重新滾動加載;https://www.zhihu.com/lives/

比如互動吧的活動列表頁,沒有對活動狀態(tài)的分類,正在進行中的活動一般是參與不了的,但是篩選不出去。http://www.hdb.com/shanghai/0-0-2-0-1/

這時候如果你用web scraper工具的話,就可以將數(shù)據(jù)爬取到本地,然后按照自己的需求進行快速篩選了。

熟練掌握這個插件后,真的能提高工作效率,減少麻煩嗎?

提高工作效率是一定的,但減少麻煩就不見得了。畢竟我因為下班太早,被老板說了~嗚嗚嗚

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,347評論 25 708
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評論 19 139
  • 1 前言 作為一名合格的數(shù)據(jù)分析師,其完整的技術(shù)知識體系必須貫穿數(shù)據(jù)獲取、數(shù)據(jù)存儲、數(shù)據(jù)提取、數(shù)據(jù)分析、數(shù)據(jù)挖掘、...
    whenif閱讀 18,320評論 45 523
  • 社會發(fā)展,競爭激烈。 分工愈細,愈求專業(yè)。 一技無長,立足甚難。 畢業(yè)三年,四處飄零。 偶入此行,自感天意。 移動...
    筆尖上的王者閱讀 830評論 0 0
  • 關(guān)注全球媽媽育兒指南 每天分享全球媽媽育兒干貨 從坐、爬行再到走路,這是一個神奇而令人興奮的過程。那么我們應(yīng)該怎么...
    全球媽媽育兒指南閱讀 521評論 0 0

友情鏈接更多精彩內(nèi)容