根據架構圖,本文介紹了Scrapy中的主要組件及其功能:
Scrapy Engine:負責控制系統所有組件中數據流的流動,觸發事件發生在相應的動作中。
調度程序:接收來自引擎的請求,並對它們進行排隊,以便在引擎稍後請求它們時可以將它們提供給引擎。
下載器:負責獲取頁面數據並提供給引擎,再提供給蜘蛛。
Spider:Scrapy用戶編寫類來分析響應,並提取項目(即獲得的項目)或URL以進行額外的跟進。每個蜘蛛負責處理壹個特定的(或壹些網站)。
項目管道:負責處理蜘蛛提取的項目。典型的處理包括清理、驗證和持久化(比如存儲在壹個數據庫中,後面會在MySQL中介紹,其他數據庫也差不多)。
下載器中間件(Downloader middlewares):是引擎即下載器之間的壹個特殊鉤子,用來處理下載器發送給引擎的響應。它提供了壹個簡單的機制,通過插入自定義代碼來擴展Scrapy的功能(後面我們會介紹如何配置壹些中間體並激活它們來對付反爬蟲)。
蜘蛛中間件:它是引擎和蜘蛛之間的壹個特殊鉤子,處理蜘蛛的輸入(響應)和輸出(條目,即請求)。它提供了壹個簡單的機制,通過插入自定義代碼來擴展Scrapy函數。