成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[爬蟲手記] 我是如何在3分鐘內(nèi)開發(fā)完一個(gè)爬蟲的

YorkChen / 3553人閱讀

摘要:前言開發(fā)爬蟲是一件有趣的事情。的可配置爬蟲是基于的,因此天生是支持并發(fā)的。的可配置爬蟲降低了爬蟲的開發(fā)時(shí)間,增加了爬蟲開發(fā)效率,完善了工程化水平,將爬蟲工程師從日常的繁瑣配置工作中解放出來。

前言

開發(fā)爬蟲是一件有趣的事情。寫一個(gè)程序,對(duì)感興趣的目標(biāo)網(wǎng)站發(fā)起HTTP請(qǐng)求,獲取HTML,解析HTML,提取數(shù)據(jù),將數(shù)據(jù)保存到數(shù)據(jù)庫或者存為CSV、JSON等格式,再用自己熟悉的語言例如Python對(duì)這些數(shù)據(jù)進(jìn)行分析生成酷炫的圖表。這個(gè)過程是不是很興奮?

然而,開發(fā)爬蟲并不是一件簡單的事情。通常開發(fā)一個(gè)簡單爬蟲往往需要編寫好幾個(gè)模塊:下載器、解析器、提取規(guī)則、保存模塊。實(shí)現(xiàn)這個(gè)簡單爬蟲用Python實(shí)現(xiàn)至少需要編寫10-20行代碼,而且如果考慮并發(fā)和調(diào)度的話,通常要編寫50行代碼以上。更麻煩的是,如果要管理多個(gè)爬蟲實(shí)現(xiàn)爬蟲的工程化,需要對(duì)各個(gè)網(wǎng)站的爬蟲代碼提取共用模塊和參數(shù),這個(gè)過程需要相當(dāng)?shù)墓こ探?jīng)驗(yàn)和時(shí)間積累。其實(shí),一般各大網(wǎng)站的結(jié)構(gòu)大同小異,僅需要更改提取規(guī)則即可。很多爬蟲工程師要在大型項(xiàng)目中編寫成百上千的提取規(guī)則,對(duì)于沒有任何管理工具的人來說,這基本上是個(gè)噩夢(mèng)。

可配置爬蟲

幸運(yùn)的是,Crawlab在版本v0.2.1中新增功能可配置爬蟲可以讓工程師從這些重復(fù)性工作中解放開來。Crawlab的可配置爬蟲只需要爬蟲工程師配置一些必要的CSS/XPath提取規(guī)則,就可以完成一個(gè)常規(guī)的爬蟲開發(fā)。根據(jù)作者實(shí)驗(yàn),對(duì)于CSS選擇器或XPath稍微熟悉點(diǎn)的工程師,用可配置爬蟲開發(fā)完一個(gè)包含五臟俱全的常規(guī)爬蟲只需要1-3分鐘。

Crawlab的可配置爬蟲是基于Scrapy的,因此天生是支持并發(fā)的。而且,可配置爬蟲完全支持Crawlab自定義爬蟲的一般功能的,因此也支持任務(wù)調(diào)度、任務(wù)監(jiān)控、日志監(jiān)控、數(shù)據(jù)分析。

安裝運(yùn)行Crawlab

Crawlab是一個(gè)專注于爬蟲的集成了爬蟲管理、任務(wù)調(diào)度、任務(wù)監(jiān)控、數(shù)據(jù)分析等模塊的分布式爬蟲管理平臺(tái),非常適合對(duì)爬蟲管理、爬蟲工程化有要求的開發(fā)者及企業(yè)。

關(guān)于Crawlab的詳細(xì)介紹請(qǐng)參考之前的文章:

爬蟲平臺(tái)Crawlab v0.2發(fā)布

手把手教你如何用Crawlab構(gòu)建技術(shù)文章聚合平臺(tái)(二)

手把手教你如何用Crawlab構(gòu)建技術(shù)文章聚合平臺(tái)(一)

分布式通用爬蟲管理平臺(tái)Crawlab

以下是Crawlab的安裝和運(yùn)行步驟,時(shí)間大概在10-20分鐘。

安裝步驟 運(yùn)行步驟 如何開發(fā)并運(yùn)行可配置爬蟲

下面總算到了爬蟲開發(fā)時(shí)間。這里將以網(wǎng)易24小時(shí)排行新聞為例,開發(fā)一個(gè)相應(yīng)的可配置爬蟲,整個(gè)流程應(yīng)該不超過3分鐘。

添加爬蟲

Crawlab跑起來之后,在瀏覽器中打開網(wǎng)址http://localhost:8080,導(dǎo)航到爬蟲。在點(diǎn)擊添加爬蟲按鈕。

點(diǎn)擊可配置爬蟲

輸入完基本信息,點(diǎn)擊添加。

配置爬蟲

添加完成后,可以看到剛剛添加的可配置爬蟲出現(xiàn)了在最下方,點(diǎn)擊查看進(jìn)入到爬蟲詳情。

點(diǎn)擊配置標(biāo)簽進(jìn)入到配置頁面。接下來,我們需要對(duì)爬蟲規(guī)則進(jìn)行配置。

這里已經(jīng)有一些配置好的初始輸入項(xiàng)。我們簡單介紹一下各自的含義。

抓取類別

這也是爬蟲抓取采用的策略,也就是爬蟲遍歷網(wǎng)頁是如何進(jìn)行的。作為第一個(gè)版本,我們有僅列表僅詳情頁、列表+詳情頁。

僅列表頁。這也是最簡單的形式,爬蟲遍歷列表上的列表項(xiàng),將數(shù)據(jù)抓取下來。

僅詳情頁。爬蟲只抓取詳情頁。

列表+詳情頁。爬蟲先遍歷列表頁,將列表項(xiàng)中的詳情頁地址提取出來并跟進(jìn)抓取詳情頁。

這里我們選擇列表+詳情頁

列表項(xiàng)選擇器 & 分頁選擇器

列表項(xiàng)的匹和分頁按鈕的匹配查詢,由CSS或XPath來進(jìn)行匹配。

開始URL

爬蟲最開始遍歷的網(wǎng)址。

遵守Robots協(xié)議

這個(gè)默認(rèn)是開啟的。如果開啟,爬蟲將先抓取網(wǎng)站的robots.txt并判斷頁面是否可抓;否則,不會(huì)對(duì)此進(jìn)行驗(yàn)證。用戶可以選擇將其關(guān)閉。請(qǐng)注意,任何無視Robots協(xié)議的行為都有法律風(fēng)險(xiǎn)。

列表頁字段 & 詳情頁字段

這些都是再列表頁或詳情頁中需要提取的字段。字段由CSS選擇器或者XPath來匹配提取。可以選擇文本或者屬性。

在檢查完目標(biāo)網(wǎng)頁的元素CSS選擇器之后,我們輸入列表項(xiàng)選擇器、開始URL、列表頁/詳情頁等信息。注意勾選url為詳情頁URL。

點(diǎn)擊保存、預(yù)覽,查看預(yù)覽內(nèi)容。

OK,現(xiàn)在配置大功告成,終于可開始跑爬蟲了!

運(yùn)行爬蟲

你唯一需要做的,就是點(diǎn)擊運(yùn)行按鈕并確認(rèn)。點(diǎn)擊概覽標(biāo)簽,你可以看到任務(wù)已經(jīng)開始運(yùn)行了。

點(diǎn)擊創(chuàng)建時(shí)間鏈接導(dǎo)航到任務(wù)詳情,點(diǎn)擊結(jié)果標(biāo)簽,你就可以看到抓取到的結(jié)果已經(jīng)保存下來了。

怎么樣,這個(gè)過程是不是超級(jí)簡單?如果熟練的話,整個(gè)過程可以在60秒內(nèi)完成!就跟玩魔方一樣,越玩越熟練!

結(jié)語

本文利用Crawlab的可配置爬蟲功能實(shí)現(xiàn)了3分鐘內(nèi)對(duì)網(wǎng)易新聞24小時(shí)新聞排行榜的抓取。同樣的過程可以實(shí)現(xiàn)在其他類似的網(wǎng)站上面。雖然這是一個(gè)經(jīng)典的“列表+詳情頁”的抓取模式,比較簡單,后續(xù)我們還會(huì)開發(fā)更多的更復(fù)雜的抓取模式,實(shí)現(xiàn)更多的抓取需求。Crawlab的可配置爬蟲降低了爬蟲的開發(fā)時(shí)間,增加了爬蟲開發(fā)效率,完善了工程化水平,將爬蟲工程師從日常的繁瑣配置工作中解放出來。配置工作可以交給初級(jí)爬蟲工程師或者外包人員來做,而高級(jí)爬蟲工程師會(huì)把精力放在更復(fù)雜的爬蟲工作上來,例如反爬、動(dòng)態(tài)內(nèi)容、分布式爬蟲等等。

Github: tikazyq/crawlab

如果感覺Crawlab還不錯(cuò),對(duì)你的日常工作或企業(yè)有幫助的話,請(qǐng)加作者微信拉入開發(fā)交流群,大家一起交流關(guān)于Crawlab的使用和開發(fā)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/7842.html

相關(guān)文章

  • [爬蟲手記] 我是如何3分鐘內(nèi)開發(fā)一個(gè)爬蟲

    摘要:前言開發(fā)爬蟲是一件有趣的事情。的可配置爬蟲是基于的,因此天生是支持并發(fā)的。遵守協(xié)議這個(gè)默認(rèn)是開啟的。的可配置爬蟲降低了爬蟲的開發(fā)時(shí)間,增加了爬蟲開發(fā)效率,完善了工程化水平,將爬蟲工程師從日常的繁瑣配置工作中解放出來。 前言 開發(fā)爬蟲是一件有趣的事情。寫一個(gè)程序,對(duì)感興趣的目標(biāo)網(wǎng)站發(fā)起HTTP請(qǐng)求,獲取HTML,解析HTML,提取數(shù)據(jù),將數(shù)據(jù)保存到數(shù)據(jù)庫或者存為CSV、JSON等格式,再...

    sushi 評(píng)論0 收藏0
  • Python爬蟲建站入門手記——從零開始建立采集站點(diǎn)(一:環(huán)境搭建)

    摘要:從今天起,我將在這里更新一個(gè)系列的簡單爬蟲到建立網(wǎng)站的實(shí)踐手記。內(nèi)容將會(huì)從最簡單的開始,環(huán)境搭建,基本爬蟲,入庫,用建立可供用戶訪問的網(wǎng)站,網(wǎng)站部署。第一部分,買,裝環(huán)境。我們爬蟲站點(diǎn)的所有文件都放在里面。 從今天起,我將在這里更新一個(gè)系列的python簡單爬蟲到建立網(wǎng)站的實(shí)踐手記。 內(nèi)容將會(huì)從最簡單的開始,環(huán)境搭建,基本爬蟲,入庫,用Django建立可供用戶訪問的網(wǎng)站,網(wǎng)站部署。 ...

    HackerShell 評(píng)論0 收藏0
  • 數(shù)據(jù)工程師妹子養(yǎng)成手記——數(shù)據(jù)庫篇

    摘要:是什么呀是一個(gè)和不太一樣的數(shù)據(jù)庫。懷疑是同時(shí)聯(lián)了四個(gè)集合的數(shù)據(jù)造成的。這本書的定位是和的應(yīng)用,所以有意弱化了數(shù)據(jù)庫的搭建維護(hù)和底層優(yōu)化。所以本書可能不適合數(shù)據(jù)庫工程師。 這篇文章沒有代碼,請(qǐng)放心閱讀。 程序員最寶貴的東西是生命,生命屬于程序員只有一次。一個(gè)程序員的一生應(yīng)該這樣度過:當(dāng)她回首往事的時(shí)候,她不會(huì)因?yàn)榇罱ōh(huán)境浪費(fèi)時(shí)間而悔恨,也不會(huì)因?yàn)榧簾o法運(yùn)行而羞恥。這樣,在她開發(fā)的時(shí)候,...

    yexiaobai 評(píng)論0 收藏0
  • 數(shù)據(jù)工程師妹子養(yǎng)成手記——數(shù)據(jù)庫篇

    摘要:是什么呀是一個(gè)和不太一樣的數(shù)據(jù)庫。懷疑是同時(shí)聯(lián)了四個(gè)集合的數(shù)據(jù)造成的。這本書的定位是和的應(yīng)用,所以有意弱化了數(shù)據(jù)庫的搭建維護(hù)和底層優(yōu)化。所以本書可能不適合數(shù)據(jù)庫工程師。 這篇文章沒有代碼,請(qǐng)放心閱讀。 程序員最寶貴的東西是生命,生命屬于程序員只有一次。一個(gè)程序員的一生應(yīng)該這樣度過:當(dāng)她回首往事的時(shí)候,她不會(huì)因?yàn)榇罱ōh(huán)境浪費(fèi)時(shí)間而悔恨,也不會(huì)因?yàn)榧簾o法運(yùn)行而羞恥。這樣,在她開發(fā)的時(shí)候,...

    atinosun 評(píng)論0 收藏0
  • Python爬蟲建站入門手記——從零開始建立采集站點(diǎn)(二:編寫爬蟲

    摘要:接上回第二部分,編寫爬蟲。進(jìn)入微信嵌套選擇圖片和上傳圖片接口,實(shí)現(xiàn)一鍵上傳圖片,遇到問題看吧,我現(xiàn)在已經(jīng)可以通過爬蟲獲取的提問標(biāo)題了。微信故意省略想做小偷站的,看到這里基本上就能搞出來了。下一篇,采集入庫 上回,我裝了環(huán)境 也就是一對(duì)亂七八糟的東西 裝了pip,用pip裝了virtualenv,建立了一個(gè)virtualenv,在這個(gè)virtualenv里面,裝了Django,創(chuàng)建了一個(gè)...

    Codeing_ls 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<