摘要:而分配任務的是會員中心的爬蟲羅盤,實現集中管理分布執行。開源即時網絡爬蟲項目同樣也要盡量實現通用化。網址和提取規則本來應該硬編碼到中的,現在隔離出來,由會員中心進行管理,那么就很容易做通用了。
1,引言
《Scrapy的架構初探》一文所講的Spider是整個架構中最定制化的一個部件,Spider負責把網頁內容提取出來,而不同數據采集目標的內容結構不一樣,幾乎需要為每一類網頁都做定制。我們有個設想:是否能做一個比較通用的Spider,把定制部分再進一步隔離出去?
GooSeeker有一個爬蟲群模式,從技術實現層面來考察的話,其實就是把爬蟲軟件做成一個被動接受任務的執行單元,給他什么任務他就做什么任務,也就是說同一個執行單元可以爬多種不同的網站。而分配任務的是GooSeeker會員中心的爬蟲羅盤,實現集中管理分布執行。
開源Python即時網絡爬蟲項目同樣也要盡量實現通用化。主要抓取以下2個重點:
網頁內容提取器從外部注入到Spider中,讓Spider變通用:參看《Python即時網絡爬蟲:API說明》,通過API從GooSeeker會員中心獲得網頁內容提取器,可以充分利用MS謀數臺的直觀標注快速生成提取器的能力。
抓取目標網址不再存于Spider,而是從外部獲得:GooSeeker有個基于大數據平臺的網址庫系統,還有爬蟲羅盤可觀察網址的抓取狀態,也有用戶界面添加刪除網址,把Spider進一步做成一個執行機構。
下面我們將進一步講解實現原理,以助于讀者閱讀源碼。
中間藍色部分就是GooSeeker會員中心的地址庫和爬蟲羅盤。網址和提取規則本來應該硬編碼到Spider中的,現在隔離出來,由會員中心進行管理,那么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
摘要:引言本文簡單講解一下的架構。沒錯,開源的通用提取器就是要集成到架構中,最看重的是的事件驅動的可擴展的架構。架構圖就是針對特定目標網站編寫的內容提取器,這是在通用網絡爬蟲框架中最需要定制的部分。 1. 引言 本文簡單講解一下Scrapy的架構。沒錯,GooSeeker開源的通用提取器gsExtractor就是要集成到Scrapy架構中,最看重的是Scrapy的事件驅動的可擴展的架構。除了...
摘要:用于下載網頁內容,并將網頁內容返回給。中間件位于引擎和下載器之間的鉤子框架,主要是處理引擎與下載器之間的請求及響應。包含了在啟動時進行爬取的列表。對象經過調度,執行生成對象并送回給方法一般返回實例。 Scrapy 是什么 Scrapy 是一個為了爬取網站數據,提取結構性數據而編寫的應用框架。 可以應用在包括數據挖掘,信息處理或存儲歷史數據等一系列的程序中。其最初是為了頁面抓取 (更確切...
摘要:分布式爬蟲框架詳解隨著互聯網技術的發展與應用的普及,網絡作為信息的載體,已經成為社會大眾參與社會生活的一種重要信息渠道。下載器中間件位于引擎和下載器之間的框架,主要是處理引擎與下載器之間的請求及響應。 scrapy-redis分布式爬蟲框架詳解 隨著互聯網技術的發展與應用的普及,網絡作為信息的載體,已經成為社會大眾參與社會生活的一種重要信息渠道。由于互聯網是開放的,每個人都可以在網絡上...
閱讀 2577·2021-09-06 15:02
閱讀 3205·2021-09-02 10:18
閱讀 2827·2019-08-30 15:44
閱讀 688·2019-08-30 15:43
閱讀 1953·2019-08-30 14:08
閱讀 2764·2019-08-30 13:16
閱讀 1400·2019-08-26 13:52
閱讀 934·2019-08-26 12:21
极致性价比!云服务器续费无忧!
Tesla A100/A800、Tesla V100S等多种GPU云主机特惠2折起,不限台数,续费同价。
NVIDIA RTX 40系,高性价比推理显卡,满足AI应用场景需要。
乌兰察布+上海青浦,满足东推西训AI场景需要