Scrapy 架構概覽
1凛驮、Scrapy Engine
Scrapy的核心引擎常侣,負責控制數(shù)據(jù)在系統(tǒng)所有組件中的流動蜡饵,并在相應動作發(fā)生時觸發(fā)事件,相當于整個框架的總指揮袭祟。
2、調度器
調度器(Scheduler)可以被看作一個優(yōu)先級隊列捞附。它從核心引擎接受request并將它們入隊巾乳,以便之后引擎請求它們時按照優(yōu)先級提供給引擎。
3鸟召、下載器
下載器(Download)負責和網(wǎng)絡交胆绊,主要作用是獲取頁面數(shù)據(jù)并提供給引擎,而后提供給spider做解析欧募,下載器在整個Scrapy架構中應該是負擔最重的組件压状,由于其需要和網(wǎng)絡交互,直接影響Scrapy的爬取效率。
4种冬、Spiders
Spiders是Sprapy用戶編寫用于分析response并提取item(即獲取到的item)或額外跟進URL的類镣丑。對用戶編寫爬蟲而言,它是最重要的組件娱两。用戶可以在同一個項目中編寫多個spider莺匠,每個spider負責處理一個特定(或一些)的網(wǎng)站。
5十兢、Item Pipeline
Item Pipeline負責處理被spider提取出來的Item趣竣。典型的處理有:清理、驗證及持久化(如存儲數(shù)據(jù))旱物。
6遥缕、下載器中間件
下載器中間件(Download Middlewares)是在核心引擎及下載器之間的特定鉤子,負責處理引擎?zhèn)鬟f給下載器的request和下載器傳遞給引擎的response宵呛。其提供了一個簡便的機制单匣,通過插入自定義代碼來擴展Scrapy功能。
7烤蜕、爬蟲中間件
爬蟲中間件(Spider Middlewares)是在核心引擎及spider之間的特定鉤子封孙,處理spider的輸入(response)和輸出(items及requests)。其提供了一個簡便的機制讽营,過插入自定義代碼來擴展Scrapy功能虎忌。