⚠注意: 可配置爬蟲如今僅在Python版本(v0.2.1-v0.2.4)可用,在最新版本Golang版本(v0.3.0)還暫時不可用,後續會加上,請關注近期更新git
開發爬蟲是一件有趣的事情。寫一個程序,對感興趣的目標網站發起HTTP請求,獲取HTML,解析HTML,提取數據,將數據保存到數據庫或者存爲CSV、JSON等格式,再用本身熟悉的語言例如Python對這些數據進行分析生成酷炫的圖表。這個過程是否是很興奮?github
然而,開發爬蟲並非一件簡單的事情。一般開發一個簡單爬蟲每每須要編寫好幾個模塊:下載器、解析器、提取規則、保存模塊。實現這個簡單爬蟲用Python實現至少須要編寫10-20行代碼,並且若是考慮併發和調度的話,一般要編寫50行代碼以上。更麻煩的是,若是要管理多個爬蟲實現爬蟲的工程化,須要對各個網站的爬蟲代碼提取共用模塊和參數,這個過程須要至關的工程經驗和時間積累。其實,通常各大網站的結構大同小異,僅須要更改提取規則便可。不少爬蟲工程師要在大型項目中編寫成百上千的提取規則,對於沒有任何管理工具的人來講,這基本上是個噩夢。數據庫
幸運的是,Crawlab在版本v0.2.1中新增功能可配置爬蟲可讓工程師從這些重複性工做中解放開來。Crawlab的可配置爬蟲只須要爬蟲工程師配置一些必要的CSS/XPath提取規則,就能夠完成一個常規的爬蟲開發。根據做者實驗,對於CSS選擇器或XPath稍微熟悉點的工程師,用可配置爬蟲開發完一個包含五臟俱全的常規爬蟲只須要1-3分鐘。瀏覽器
Crawlab的可配置爬蟲是基於Scrapy的,所以天生是支持併發的。並且,可配置爬蟲徹底支持Crawlab自定義爬蟲的通常功能的,所以也支持任務調度、任務監控、日誌監控、數據分析。微信
Crawlab是一個專一於爬蟲的集成了爬蟲管理、任務調度、任務監控、數據分析等模塊的分佈式爬蟲管理平臺,很是適合對爬蟲管理、爬蟲工程化有要求的開發者及企業。併發
關於Crawlab的詳細介紹請參考以前的文章:分佈式
如下是Crawlab的安裝和運行步驟,時間大概在10-20分鐘。工具
下面總算到了爬蟲開發時間。這裏將以網易24小時排行新聞爲例,開發一個相應的可配置爬蟲,整個流程應該不超過3分鐘。post
Crawlab跑起來以後,在瀏覽器中打開網址http://localhost:8080,導航到爬蟲。在點擊添加爬蟲按鈕。網站
點擊可配置爬蟲。
輸入完基本信息,點擊添加。
添加完成後,能夠看到剛剛添加的可配置爬蟲出現了在最下方,點擊查看進入到爬蟲詳情。
點擊配置標籤進入到配置頁面。接下來,咱們須要對爬蟲規則進行配置。
這裏已經有一些配置好的初始輸入項。咱們簡單介紹一下各自的含義。
這也是爬蟲抓取採用的策略,也就是爬蟲遍歷網頁是如何進行的。做爲第一個版本,咱們有僅列表、僅詳情頁、列表+詳情頁。
這裏咱們選擇列表+詳情頁。
列表項的匹和分頁按鈕的匹配查詢,由CSS或XPath來進行匹配。
爬蟲最開始遍歷的網址。
這個默認是開啓的。若是開啓,爬蟲將先抓取網站的robots.txt並判斷頁面是否可抓;不然,不會對此進行驗證。用戶能夠選擇將其關閉。請注意,任何無視Robots協議的行爲都有法律風險。
這些都是再列表頁或詳情頁中須要提取的字段。字段由CSS選擇器或者XPath來匹配提取。能夠選擇文本或者屬性。
在檢查完目標網頁的元素CSS選擇器以後,咱們輸入列表項選擇器、開始URL、列表頁/詳情頁等信息。注意勾選url爲詳情頁URL。
點擊保存、預覽,查看預覽內容。
OK,如今配置大功告成,終於可開始跑爬蟲了!
你惟一須要作的,就是點擊運行按鈕並確認。點擊概覽標籤,你能夠看到任務已經開始運行了。
點擊建立時間連接導航到任務詳情,點擊結果標籤,你就能夠看到抓取到的結果已經保存下來了。
怎麼樣,這個過程是否是超級簡單?若是熟練的話,整個過程能夠在60秒內完成!就跟玩魔方同樣,越玩越熟練!
本文利用Crawlab的可配置爬蟲功能實現了3分鐘內對網易新聞24小時新聞排行榜的抓取。一樣的過程能夠實如今其餘相似的網站上面。雖然這是一個經典的「列表+詳情頁」的抓取模式,比較簡單,後續咱們還會開發更多的更復雜的抓取模式,實現更多的抓取需求。Crawlab的可配置爬蟲下降了爬蟲的開發時間,增長了爬蟲開發效率,完善了工程化水平,將爬蟲工程師從平常的繁瑣配置工做中解放出來。配置工做能夠交給初級爬蟲工程師或者外包人員來作,而高級爬蟲工程師會把精力放在更復雜的爬蟲工做上來,例如反爬、動態內容、分佈式爬蟲等等。
Github: tikazyq/crawlab
若是感受Crawlab還不錯,對你的平常工做或企業有幫助的話,請加做者微信拉入開發交流羣,你們一塊兒交流關於Crawlab的使用和開發。