Scrapy五大核心組件工作流程
阿新 • • 發佈:2019-03-25
spi 持久化存儲 行數據 驗證 返回 爬蟲 rap mage 去重
一.Scrapy五大核心組件工作流程
1.核心組件
# 引擎(Scrapy) 對整個系統的數據流進行處理, 觸發事務(框架核心). # 調度器(Scheduler) 用來接受引擎發過來的請求. 由過濾器過濾重復的url並將其壓入隊列中, 在引擎再次請求的時候返回. 可以想像成一個URL(抓取網頁的網址或者說是鏈接)的優先隊列, 由它來決定下一個要抓取的網址是什麽. # 下載器(Downloader) 用於下載網頁內容, 並將網頁內容返回給蜘蛛(Scrapy下載器是建立在twisted這個高效的異步模型上的). # 爬蟲(Spiders) 爬蟲是主要幹活的, 它可以生成url, 並從特定的url中提取自己需要的信息, 即所謂的實體(Item). 用戶也可以從中提取出鏈接, 讓Scrapy繼續抓取下一個頁面. # 項目管道(Pipeline) 負責處理爬蟲從網頁中抽取的實體, 主要的功能是持久化實體、驗證實體的有效性、清除不需要的信息. 當頁面被爬蟲解析後, 將被發送到項目管道, 並經過幾個特定的次序處理數據.
2.工作流程
- spider中的url被封裝成請求對象交給引擎(每一個url對應一個請求對象);
- 引擎拿到請求對象之後, 將其全部交給調度器;
- 調度器拿到所有請求對象後, 通過內部的過濾器過濾掉重復的url, 最後將去重後的所有url對應的請求對象壓入到隊列中, 隨後調度器調度出其中一個請求對象, 並將其交給引擎;
- 引擎將調度器調度出的請求對象交給下載器;
- 下載器拿到該請求對象去互聯網中下載數據;
- 數據下載成功後會被封裝到response中, 隨後response會被交給下載器;
- 下載器將response交給引擎;
- 引擎將response交給spiders;
- spiders拿到response後調用回調方法進行數據解析, 解析成功後產生item, 隨後spiders將item交給引擎;
- 引擎將item交給管道, 管道拿到item後進行數據的持久化存儲.
Scrapy五大核心組件工作流程