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

資訊專欄INFORMATION COLUMN

讓Scrapy的Spider更通用

MartinDai / 1221人閱讀

摘要:而分配任務(wù)的是會(huì)員中心的爬蟲羅盤,實(shí)現(xiàn)集中管理分布執(zhí)行。開源即時(shí)網(wǎng)絡(luò)爬蟲項(xiàng)目同樣也要盡量實(shí)現(xiàn)通用化。網(wǎng)址和提取規(guī)則本來應(yīng)該硬編碼到中的,現(xiàn)在隔離出來,由會(huì)員中心進(jìn)行管理,那么就很容易做通用了。

1,引言

《Scrapy的架構(gòu)初探》一文所講的Spider是整個(gè)架構(gòu)中最定制化的一個(gè)部件,Spider負(fù)責(zé)把網(wǎng)頁內(nèi)容提取出來,而不同數(shù)據(jù)采集目標(biāo)的內(nèi)容結(jié)構(gòu)不一樣,幾乎需要為每一類網(wǎng)頁都做定制。我們有個(gè)設(shè)想:是否能做一個(gè)比較通用的Spider,把定制部分再進(jìn)一步隔離出去?

GooSeeker有一個(gè)爬蟲群模式,從技術(shù)實(shí)現(xiàn)層面來考察的話,其實(shí)就是把爬蟲軟件做成一個(gè)被動(dòng)接受任務(wù)的執(zhí)行單元,給他什么任務(wù)他就做什么任務(wù),也就是說同一個(gè)執(zhí)行單元可以爬多種不同的網(wǎng)站。而分配任務(wù)的是GooSeeker會(huì)員中心的爬蟲羅盤,實(shí)現(xiàn)集中管理分布執(zhí)行。

開源Python即時(shí)網(wǎng)絡(luò)爬蟲項(xiàng)目同樣也要盡量實(shí)現(xiàn)通用化。主要抓取以下2個(gè)重點(diǎn):

網(wǎng)頁內(nèi)容提取器從外部注入到Spider中,讓Spider變通用:參看《Python即時(shí)網(wǎng)絡(luò)爬蟲:API說明》,通過API從GooSeeker會(huì)員中心獲得網(wǎng)頁內(nèi)容提取器,可以充分利用MS謀數(shù)臺(tái)的直觀標(biāo)注快速生成提取器的能力。

抓取目標(biāo)網(wǎng)址不再存于Spider,而是從外部獲得:GooSeeker有個(gè)基于大數(shù)據(jù)平臺(tái)的網(wǎng)址庫系統(tǒng),還有爬蟲羅盤可觀察網(wǎng)址的抓取狀態(tài),也有用戶界面添加刪除網(wǎng)址,把Spider進(jìn)一步做成一個(gè)執(zhí)行機(jī)構(gòu)。
下面我們將進(jìn)一步講解實(shí)現(xiàn)原理,以助于讀者閱讀源碼。

2,爬蟲群模式示意圖


中間藍(lán)色部分就是GooSeeker會(huì)員中心的地址庫和爬蟲羅盤。網(wǎng)址和提取規(guī)則本來應(yīng)該硬編碼到Spider中的,現(xiàn)在隔離出來,由會(huì)員中心進(jìn)行管理,那么Spider就很容易做通用了。

3,通用Spider的主要功能

地址庫和提取規(guī)則隔離出來以后,Scrapy的Spider可以專注于以下流程:

通過API從GooSeeker會(huì)員中心獲取內(nèi)容提取器:這個(gè)API的url可以硬編碼到Spider中,放在start_urls列表的位置, 這里本來是放目標(biāo)網(wǎng)頁地址的,現(xiàn)在換成一個(gè)固定的API地址,在這一點(diǎn)上,Spider變通用了

在第一個(gè)parse()過程,不是解析目標(biāo)網(wǎng)頁內(nèi)容,而是把API中獲得內(nèi)容提取器注入到gsExtractor中。

在第一個(gè)parse()過程,為第二個(gè)API構(gòu)造一個(gè)Request,目的是從GooSeeker會(huì)員中心獲取要爬取的網(wǎng)址

在第二個(gè)parse()過程,用目標(biāo)網(wǎng)址構(gòu)造一個(gè)Request,這才是真正的交給Loader去下載目標(biāo)網(wǎng)頁

在第三個(gè)parse()過程,利用gsExtractor提取網(wǎng)頁內(nèi)容

在第三個(gè)parse()過程,再次為第二個(gè)API構(gòu)造一個(gè)Request,獲得下一個(gè)目標(biāo)網(wǎng)址

跳到4,一直循環(huán),直到GooSeeker會(huì)員中心的地址庫都用完了。

4,接下來的工作

按照上述設(shè)想編寫和調(diào)測Scrapy的通用Spider

研究是否可以更加通用,把GooSeeker的爬蟲群調(diào)度都引入到Spider中,也就是在通過第一個(gè)API獲得提取器之前再增加一個(gè)獲得爬蟲群調(diào)度任務(wù)的過程,這樣,把所有Spider都變成被動(dòng)接受任務(wù)的工作模式,每個(gè)Spider是不固定抓取規(guī)則的。

5,相關(guān)文檔

Python即時(shí)網(wǎng)絡(luò)爬蟲項(xiàng)目: 內(nèi)容提取器的定義

Scrapy:python3下的第一次運(yùn)行測試

6,集搜客GooSeeker開源代碼下載源

開源Python即時(shí)網(wǎng)絡(luò)爬蟲GitHub源

7,文檔修改歷史

2016-06-30:V1.0,首次發(fā)布
2016-06-30:V1.1,編輯修改,補(bǔ)充過程描述文字

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

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

相關(guān)文章

  • 爬蟲入門

    摘要:通用網(wǎng)絡(luò)爬蟲通用網(wǎng)絡(luò)爬蟲又稱全網(wǎng)爬蟲,爬取對(duì)象從一些種子擴(kuò)充到整個(gè)。為提高工作效率,通用網(wǎng)絡(luò)爬蟲會(huì)采取一定的爬取策略。介紹是一個(gè)國人編寫的強(qiáng)大的網(wǎng)絡(luò)爬蟲系統(tǒng)并帶有強(qiáng)大的。 爬蟲 簡單的說網(wǎng)絡(luò)爬蟲(Web crawler)也叫做網(wǎng)絡(luò)鏟(Web scraper)、網(wǎng)絡(luò)蜘蛛(Web spider),其行為一般是先爬到對(duì)應(yīng)的網(wǎng)頁上,再把需要的信息鏟下來。 分類 網(wǎng)絡(luò)爬蟲按照系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)技術(shù),...

    defcon 評(píng)論0 收藏0
  • 爬蟲入門

    摘要:通用網(wǎng)絡(luò)爬蟲通用網(wǎng)絡(luò)爬蟲又稱全網(wǎng)爬蟲,爬取對(duì)象從一些種子擴(kuò)充到整個(gè)。為提高工作效率,通用網(wǎng)絡(luò)爬蟲會(huì)采取一定的爬取策略。介紹是一個(gè)國人編寫的強(qiáng)大的網(wǎng)絡(luò)爬蟲系統(tǒng)并帶有強(qiáng)大的。 爬蟲 簡單的說網(wǎng)絡(luò)爬蟲(Web crawler)也叫做網(wǎng)絡(luò)鏟(Web scraper)、網(wǎng)絡(luò)蜘蛛(Web spider),其行為一般是先爬到對(duì)應(yīng)的網(wǎng)頁上,再把需要的信息鏟下來。 分類 網(wǎng)絡(luò)爬蟲按照系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)技術(shù),...

    Invoker 評(píng)論0 收藏0
  • Scrapy架構(gòu)初探

    摘要:引言本文簡單講解一下的架構(gòu)。沒錯(cuò),開源的通用提取器就是要集成到架構(gòu)中,最看重的是的事件驅(qū)動(dòng)的可擴(kuò)展的架構(gòu)。架構(gòu)圖就是針對(duì)特定目標(biāo)網(wǎng)站編寫的內(nèi)容提取器,這是在通用網(wǎng)絡(luò)爬蟲框架中最需要定制的部分。 1. 引言 本文簡單講解一下Scrapy的架構(gòu)。沒錯(cuò),GooSeeker開源的通用提取器gsExtractor就是要集成到Scrapy架構(gòu)中,最看重的是Scrapy的事件驅(qū)動(dòng)的可擴(kuò)展的架構(gòu)。除了...

    劉明 評(píng)論0 收藏0
  • Scrapy Demo

    摘要:用于下載網(wǎng)頁內(nèi)容,并將網(wǎng)頁內(nèi)容返回給。中間件位于引擎和下載器之間的鉤子框架,主要是處理引擎與下載器之間的請(qǐng)求及響應(yīng)。包含了在啟動(dòng)時(shí)進(jìn)行爬取的列表。對(duì)象經(jīng)過調(diào)度,執(zhí)行生成對(duì)象并送回給方法一般返回實(shí)例。 Scrapy 是什么 Scrapy 是一個(gè)為了爬取網(wǎng)站數(shù)據(jù),提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架。 可以應(yīng)用在包括數(shù)據(jù)挖掘,信息處理或存儲(chǔ)歷史數(shù)據(jù)等一系列的程序中。其最初是為了頁面抓取 (更確切...

    VEIGHTZ 評(píng)論0 收藏0
  • scrapy-redis分布式爬蟲框架詳解

    摘要:分布式爬蟲框架詳解隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用的普及,網(wǎng)絡(luò)作為信息的載體,已經(jīng)成為社會(huì)大眾參與社會(huì)生活的一種重要信息渠道。下載器中間件位于引擎和下載器之間的框架,主要是處理引擎與下載器之間的請(qǐng)求及響應(yīng)。 scrapy-redis分布式爬蟲框架詳解 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用的普及,網(wǎng)絡(luò)作為信息的載體,已經(jīng)成為社會(huì)大眾參與社會(huì)生活的一種重要信息渠道。由于互聯(lián)網(wǎng)是開放的,每個(gè)人都可以在網(wǎng)絡(luò)上...

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

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

0條評(píng)論

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