摘要:前言開發(fā)爬蟲是一件有趣的事情。的可配置爬蟲是基于的,因此天生是支持并發(fā)的。的可配置爬蟲降低了爬蟲的開發(fā)時間,增加了爬蟲開發(fā)效率,完善了工程化水平,將爬蟲工程師從日常的繁瑣配置工作中解放出來。
前言開發(fā)爬蟲是一件有趣的事情。寫一個程序,對感興趣的目標網站發(fā)起HTTP請求,獲取HTML,解析HTML,提取數據,將數據保存到數據庫或者存為CSV、JSON等格式,再用自己熟悉的語言例如Python對這些數據進行分析生成酷炫的圖表。這個過程是不是很興奮?
然而,開發(fā)爬蟲并不是一件簡單的事情。通常開發(fā)一個簡單爬蟲往往需要編寫好幾個模塊:下載器、解析器、提取規(guī)則、保存模塊。實現(xiàn)這個簡單爬蟲用Python實現(xiàn)至少需要編寫10-20行代碼,而且如果考慮并發(fā)和調度的話,通常要編寫50行代碼以上。更麻煩的是,如果要管理多個爬蟲實現(xiàn)爬蟲的工程化,需要對各個網站的爬蟲代碼提取共用模塊和參數,這個過程需要相當的工程經驗和時間積累。其實,一般各大網站的結構大同小異,僅需要更改提取規(guī)則即可。很多爬蟲工程師要在大型項目中編寫成百上千的提取規(guī)則,對于沒有任何管理工具的人來說,這基本上是個噩夢。
可配置爬蟲幸運的是,Crawlab在版本v0.2.1中新增功能可配置爬蟲可以讓工程師從這些重復性工作中解放開來。Crawlab的可配置爬蟲只需要爬蟲工程師配置一些必要的CSS/XPath提取規(guī)則,就可以完成一個常規(guī)的爬蟲開發(fā)。根據作者實驗,對于CSS選擇器或XPath稍微熟悉點的工程師,用可配置爬蟲開發(fā)完一個包含五臟俱全的常規(guī)爬蟲只需要1-3分鐘。
Crawlab的可配置爬蟲是基于Scrapy的,因此天生是支持并發(fā)的。而且,可配置爬蟲完全支持Crawlab自定義爬蟲的一般功能的,因此也支持任務調度、任務監(jiān)控、日志監(jiān)控、數據分析。
安裝運行CrawlabCrawlab是一個專注于爬蟲的集成了爬蟲管理、任務調度、任務監(jiān)控、數據分析等模塊的分布式爬蟲管理平臺,非常適合對爬蟲管理、爬蟲工程化有要求的開發(fā)者及企業(yè)。
關于Crawlab的詳細介紹請參考之前的文章:
爬蟲平臺Crawlab v0.2發(fā)布
手把手教你如何用Crawlab構建技術文章聚合平臺(二)
手把手教你如何用Crawlab構建技術文章聚合平臺(一)
分布式通用爬蟲管理平臺Crawlab
以下是Crawlab的安裝和運行步驟,時間大概在10-20分鐘。
安裝步驟 運行步驟 如何開發(fā)并運行可配置爬蟲下面總算到了爬蟲開發(fā)時間。這里將以網易24小時排行新聞為例,開發(fā)一個相應的可配置爬蟲,整個流程應該不超過3分鐘。
添加爬蟲Crawlab跑起來之后,在瀏覽器中打開網址http://localhost:8080,導航到爬蟲。在點擊添加爬蟲按鈕。
點擊可配置爬蟲。
輸入完基本信息,點擊添加。
配置爬蟲
添加完成后,可以看到剛剛添加的可配置爬蟲出現(xiàn)了在最下方,點擊查看進入到爬蟲詳情。
點擊配置標簽進入到配置頁面。接下來,我們需要對爬蟲規(guī)則進行配置。
這里已經有一些配置好的初始輸入項。我們簡單介紹一下各自的含義。
這也是爬蟲抓取采用的策略,也就是爬蟲遍歷網頁是如何進行的。作為第一個版本,我們有僅列表、僅詳情頁、列表+詳情頁。
僅列表頁。這也是最簡單的形式,爬蟲遍歷列表上的列表項,將數據抓取下來。
僅詳情頁。爬蟲只抓取詳情頁。
列表+詳情頁。爬蟲先遍歷列表頁,將列表項中的詳情頁地址提取出來并跟進抓取詳情頁。
這里我們選擇列表+詳情頁。
列表項的匹和分頁按鈕的匹配查詢,由CSS或XPath來進行匹配。
爬蟲最開始遍歷的網址。
這個默認是開啟的。如果開啟,爬蟲將先抓取網站的robots.txt并判斷頁面是否可抓;否則,不會對此進行驗證。用戶可以選擇將其關閉。請注意,任何無視Robots協(xié)議的行為都有法律風險。
這些都是再列表頁或詳情頁中需要提取的字段。字段由CSS選擇器或者XPath來匹配提取。可以選擇文本或者屬性。
在檢查完目標網頁的元素CSS選擇器之后,我們輸入列表項選擇器、開始URL、列表頁/詳情頁等信息。注意勾選url為詳情頁URL。
點擊保存、預覽,查看預覽內容。
OK,現(xiàn)在配置大功告成,終于可開始跑爬蟲了!
運行爬蟲你唯一需要做的,就是點擊運行按鈕并確認。點擊概覽標簽,你可以看到任務已經開始運行了。
點擊創(chuàng)建時間鏈接導航到任務詳情,點擊結果標簽,你就可以看到抓取到的結果已經保存下來了。
怎么樣,這個過程是不是超級簡單?如果熟練的話,整個過程可以在60秒內完成!就跟玩魔方一樣,越玩越熟練!
結語本文利用Crawlab的可配置爬蟲功能實現(xiàn)了3分鐘內對網易新聞24小時新聞排行榜的抓取。同樣的過程可以實現(xiàn)在其他類似的網站上面。雖然這是一個經典的“列表+詳情頁”的抓取模式,比較簡單,后續(xù)我們還會開發(fā)更多的更復雜的抓取模式,實現(xiàn)更多的抓取需求。Crawlab的可配置爬蟲降低了爬蟲的開發(fā)時間,增加了爬蟲開發(fā)效率,完善了工程化水平,將爬蟲工程師從日常的繁瑣配置工作中解放出來。配置工作可以交給初級爬蟲工程師或者外包人員來做,而高級爬蟲工程師會把精力放在更復雜的爬蟲工作上來,例如反爬、動態(tài)內容、分布式爬蟲等等。
Github: tikazyq/crawlab
如果感覺Crawlab還不錯,對你的日常工作或企業(yè)有幫助的話,請加作者微信拉入開發(fā)交流群,大家一起交流關于Crawlab的使用和開發(fā)。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/7842.html
摘要:前言開發(fā)爬蟲是一件有趣的事情。的可配置爬蟲是基于的,因此天生是支持并發(fā)的。遵守協(xié)議這個默認是開啟的。的可配置爬蟲降低了爬蟲的開發(fā)時間,增加了爬蟲開發(fā)效率,完善了工程化水平,將爬蟲工程師從日常的繁瑣配置工作中解放出來。 前言 開發(fā)爬蟲是一件有趣的事情。寫一個程序,對感興趣的目標網站發(fā)起HTTP請求,獲取HTML,解析HTML,提取數據,將數據保存到數據庫或者存為CSV、JSON等格式,再...
摘要:從今天起,我將在這里更新一個系列的簡單爬蟲到建立網站的實踐手記。內容將會從最簡單的開始,環(huán)境搭建,基本爬蟲,入庫,用建立可供用戶訪問的網站,網站部署。第一部分,買,裝環(huán)境。我們爬蟲站點的所有文件都放在里面。 從今天起,我將在這里更新一個系列的python簡單爬蟲到建立網站的實踐手記。 內容將會從最簡單的開始,環(huán)境搭建,基本爬蟲,入庫,用Django建立可供用戶訪問的網站,網站部署。 ...
摘要:是什么呀是一個和不太一樣的數據庫。懷疑是同時聯(lián)了四個集合的數據造成的。這本書的定位是和的應用,所以有意弱化了數據庫的搭建維護和底層優(yōu)化。所以本書可能不適合數據庫工程師。 這篇文章沒有代碼,請放心閱讀。 程序員最寶貴的東西是生命,生命屬于程序員只有一次。一個程序員的一生應該這樣度過:當她回首往事的時候,她不會因為搭建環(huán)境浪費時間而悔恨,也不會因為集群無法運行而羞恥。這樣,在她開發(fā)的時候,...
摘要:是什么呀是一個和不太一樣的數據庫。懷疑是同時聯(lián)了四個集合的數據造成的。這本書的定位是和的應用,所以有意弱化了數據庫的搭建維護和底層優(yōu)化。所以本書可能不適合數據庫工程師。 這篇文章沒有代碼,請放心閱讀。 程序員最寶貴的東西是生命,生命屬于程序員只有一次。一個程序員的一生應該這樣度過:當她回首往事的時候,她不會因為搭建環(huán)境浪費時間而悔恨,也不會因為集群無法運行而羞恥。這樣,在她開發(fā)的時候,...
摘要:接上回第二部分,編寫爬蟲。進入微信嵌套選擇圖片和上傳圖片接口,實現(xiàn)一鍵上傳圖片,遇到問題看吧,我現(xiàn)在已經可以通過爬蟲獲取的提問標題了。微信故意省略想做小偷站的,看到這里基本上就能搞出來了。下一篇,采集入庫 上回,我裝了環(huán)境 也就是一對亂七八糟的東西 裝了pip,用pip裝了virtualenv,建立了一個virtualenv,在這個virtualenv里面,裝了Django,創(chuàng)建了一個...
閱讀 2879·2021-11-24 09:39
閱讀 3130·2021-11-19 10:00
閱讀 1535·2021-10-27 14:17
閱讀 1811·2021-10-14 09:43
閱讀 961·2021-09-03 10:30
閱讀 3413·2019-08-30 15:54
閱讀 2728·2019-08-30 13:05
閱讀 2006·2019-08-30 11:02