首頁技術文章正文

Scrapy框架流程圖和框架組件

更新時間:2021-06-18 來源:黑馬程序員 瀏覽量:

學習Scrapy框架,從理解它的架構開始。

Scrapy框架架構圖
Scrapy框架

從上圖可知,Scrapy框架主要包含以下組件:

(1) Scrapy Engine (引擎) :負責Spiders、Item Pipeline、Downloader、Scheduler之間的通信,包括信號和數(shù)據(jù)的傳遞等。

(2) Scheduler (調(diào)度器):負責接收引擎發(fā)送過來的Request請求,并按照一定的方式進行整理排列和人隊,當引擎需要時,交還給引擎。

(3) Downloader (下載器) :負責下載Scrapy Engine 發(fā)送的所有Requests (請求) ;并將其獲取到的Responses (響應)交還給Scrapy Engine,由Scrapy Engine交給Spider來處理。

(4) Spiders (爬蟲) :負責處理所有Responses,從中分析提取數(shù)據(jù),獲取Item字段需要的數(shù)據(jù),并將需要跟進的URL提交給引擎,再次進人Scheduler (調(diào)度器)。

(5) Item Pipeline (管道):負責處理Spiders中獲取到的Item數(shù)據(jù),并進行后期處理(詳細分析、過濾、存儲等)。

(6) Downloader Middlewares (下載中間件):是一個可以自定義擴展下載功能的組件。

(7) Spider Middlewares (Spider中間件):是一個可以自定義擴展Scrapy Engine和Spiders中間通信的功能組件(例如,進人Spiders的Responses和從Spiders出去的Requests)。

Scrapy的這些組件通力合作,共同完成整個爬取任務。架構圖中的箭頭是數(shù)據(jù)的流動方向,首先從初始URL開始,Scheduler 會將其交給Downloader進行下載,下載之后會交給Spiders進行分析。Spiders分析出來的結果有兩種:一種是需要進一步爬取的鏈接,例如之前分析的“下一頁”的鏈接,這些會被傳回Scheduler;另一種是需要保存的數(shù)據(jù),它們被送到Item Pipeline,這是對數(shù)據(jù)進行后期處理(詳細分析、過濾、存儲等)的地方。另外,在數(shù)據(jù)流動的通道里還可以安裝各種中間件,進行必要的處理。



猜你喜歡:

Python爬蟲難學嗎?學會需要多久?

網(wǎng)絡爬蟲之通用爬蟲和聚焦爬蟲

Python爬蟲支持的網(wǎng)頁解析技術有哪些?

三種分布式爬蟲策略的優(yōu)缺點

多線程爬蟲是什么?多線程爬蟲流程分析

黑馬程序員python+大數(shù)據(jù)培訓課程

分享到:
在線咨詢 我要報名
和我們在線交談!