国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

讓Scrapy的Spider更通用

MartinDai / 1199人閱讀

摘要:而分配任務的是會員中心的爬蟲羅盤,實現集中管理分布執行。開源即時網絡爬蟲項目同樣也要盡量實現通用化。網址和提取規則本來應該硬編碼到中的,現在隔離出來,由會員中心進行管理,那么就很容易做通用了。

1,引言

《Scrapy的架構初探》一文所講的Spider是整個架構中最定制化的一個部件,Spider負責把網頁內容提取出來,而不同數據采集目標的內容結構不一樣,幾乎需要為每一類網頁都做定制。我們有個設想:是否能做一個比較通用的Spider,把定制部分再進一步隔離出去?

GooSeeker有一個爬蟲群模式,從技術實現層面來考察的話,其實就是把爬蟲軟件做成一個被動接受任務的執行單元,給他什么任務他就做什么任務,也就是說同一個執行單元可以爬多種不同的網站。而分配任務的是GooSeeker會員中心的爬蟲羅盤,實現集中管理分布執行。

開源Python即時網絡爬蟲項目同樣也要盡量實現通用化。主要抓取以下2個重點:

網頁內容提取器從外部注入到Spider中,讓Spider變通用:參看《Python即時網絡爬蟲:API說明》,通過API從GooSeeker會員中心獲得網頁內容提取器,可以充分利用MS謀數臺的直觀標注快速生成提取器的能力。

抓取目標網址不再存于Spider,而是從外部獲得:GooSeeker有個基于大數據平臺的網址庫系統,還有爬蟲羅盤可觀察網址的抓取狀態,也有用戶界面添加刪除網址,把Spider進一步做成一個執行機構。
下面我們將進一步講解實現原理,以助于讀者閱讀源碼。

2,爬蟲群模式示意圖


中間藍色部分就是GooSeeker會員中心的地址庫和爬蟲羅盤。網址和提取規則本來應該硬編碼到Spider中的,現在隔離出來,由會員中心進行管理,那么Spider就很容易做通用了。

3,通用Spider的主要功能

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

通過API從GooSeeker會員中心獲取內容提取器:這個API的url可以硬編碼到Spider中,放在start_urls列表的位置, 這里本來是放目標網頁地址的,現在換成一個固定的API地址,在這一點上,Spider變通用了

在第一個parse()過程,不是解析目標網頁內容,而是把API中獲得內容提取器注入到gsExtractor中。

在第一個parse()過程,為第二個API構造一個Request,目的是從GooSeeker會員中心獲取要爬取的網址

在第二個parse()過程,用目標網址構造一個Request,這才是真正的交給Loader去下載目標網頁

在第三個parse()過程,利用gsExtractor提取網頁內容

在第三個parse()過程,再次為第二個API構造一個Request,獲得下一個目標網址

跳到4,一直循環,直到GooSeeker會員中心的地址庫都用完了。

4,接下來的工作

按照上述設想編寫和調測Scrapy的通用Spider

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

5,相關文檔

Python即時網絡爬蟲項目: 內容提取器的定義

Scrapy:python3下的第一次運行測試

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

開源Python即時網絡爬蟲GitHub源

7,文檔修改歷史

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38047.html

相關文章

  • 爬蟲入門

    摘要:通用網絡爬蟲通用網絡爬蟲又稱全網爬蟲,爬取對象從一些種子擴充到整個。為提高工作效率,通用網絡爬蟲會采取一定的爬取策略。介紹是一個國人編寫的強大的網絡爬蟲系統并帶有強大的。 爬蟲 簡單的說網絡爬蟲(Web crawler)也叫做網絡鏟(Web scraper)、網絡蜘蛛(Web spider),其行為一般是先爬到對應的網頁上,再把需要的信息鏟下來。 分類 網絡爬蟲按照系統結構和實現技術,...

    defcon 評論0 收藏0
  • 爬蟲入門

    摘要:通用網絡爬蟲通用網絡爬蟲又稱全網爬蟲,爬取對象從一些種子擴充到整個。為提高工作效率,通用網絡爬蟲會采取一定的爬取策略。介紹是一個國人編寫的強大的網絡爬蟲系統并帶有強大的。 爬蟲 簡單的說網絡爬蟲(Web crawler)也叫做網絡鏟(Web scraper)、網絡蜘蛛(Web spider),其行為一般是先爬到對應的網頁上,再把需要的信息鏟下來。 分類 網絡爬蟲按照系統結構和實現技術,...

    Invoker 評論0 收藏0
  • Scrapy架構初探

    摘要:引言本文簡單講解一下的架構。沒錯,開源的通用提取器就是要集成到架構中,最看重的是的事件驅動的可擴展的架構。架構圖就是針對特定目標網站編寫的內容提取器,這是在通用網絡爬蟲框架中最需要定制的部分。 1. 引言 本文簡單講解一下Scrapy的架構。沒錯,GooSeeker開源的通用提取器gsExtractor就是要集成到Scrapy架構中,最看重的是Scrapy的事件驅動的可擴展的架構。除了...

    劉明 評論0 收藏0
  • Scrapy Demo

    摘要:用于下載網頁內容,并將網頁內容返回給。中間件位于引擎和下載器之間的鉤子框架,主要是處理引擎與下載器之間的請求及響應。包含了在啟動時進行爬取的列表。對象經過調度,執行生成對象并送回給方法一般返回實例。 Scrapy 是什么 Scrapy 是一個為了爬取網站數據,提取結構性數據而編寫的應用框架。 可以應用在包括數據挖掘,信息處理或存儲歷史數據等一系列的程序中。其最初是為了頁面抓取 (更確切...

    VEIGHTZ 評論0 收藏0
  • scrapy-redis分布式爬蟲框架詳解

    摘要:分布式爬蟲框架詳解隨著互聯網技術的發展與應用的普及,網絡作為信息的載體,已經成為社會大眾參與社會生活的一種重要信息渠道。下載器中間件位于引擎和下載器之間的框架,主要是處理引擎與下載器之間的請求及響應。 scrapy-redis分布式爬蟲框架詳解 隨著互聯網技術的發展與應用的普及,網絡作為信息的載體,已經成為社會大眾參與社會生活的一種重要信息渠道。由于互聯網是開放的,每個人都可以在網絡上...

    myeveryheart 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<