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