Scrapy五大核心組件簡介
阿新 • • 發佈:2019-05-15
持久化存儲 重復 處理 持久化 簡介 成功 行數據 資源 事務
五大核心組件
scrapy框架主要由五大組件組成,他們分別是調度器(Scheduler),下載器(Downloader),爬蟲(Spider),和實體管道(Item Pipeline),Scrapy引擎(Scrapy Fngine)
下面我們說說他們各自的作用:
調度器
用來接受引擎發過來的請求,由過濾器重復的url並將其壓入隊列中,在引擎再次請求的時候返回,
可以想象成一個URL(抓取網頁的網址或者說是鏈接)的優先隊列,由他決定下一個要抓取的網址是什麽,用戶可以根據自己的需求定制調度器
下載器
下載器,是所有組件中負擔最大的,它用於高速地下載網絡上的資源,Scrapy的下載器代碼不會太復雜,但效率高(原因:Scrapy下載器是建立在twisted這個高效的異步模型上的)
爬蟲
爬蟲是主要幹活的,用戶最關心的部分, 它可以生成url, 並從特定的url中提取自己需要的信息, 即所謂的實體(Item). 用戶也可以從中提取出鏈接, 讓Scrapy繼續抓取下一個頁面.
實體管道
負責處理爬蟲從網頁中抽取的實體, 主要的功能是持久化實體、驗證實體的有效性、清除不需要的信息. 當頁面被爬蟲解析後, 將被發送到項目管道, 並經過幾個特定的次序處理數據.
引擎
Scrapy引擎是整個框架的核心。它用來控制調試器、下載器、爬蟲。實際上,引擎相當於計算機的CPU,它控制著整個流程。對整個系統的數據流進行處理, 觸發事務(框架核心).
工作流程
步驟詳解:
1.spider中的url被封裝成請求對象交給引擎(每一個對應一個請求對象)
2.引擎拿到請求對象之後,將全部交給調度器
3.調度器鬧到所有請求對象後,通過內部的過濾器過濾掉重復的url,最後將去重後的所有url對應的請求對象壓入到隊列中,隨後調度器調度出其中一個請求對象,並將其交給引擎
4.引擎將調度器調度出的請求對象交給下載器
5.下載器拿到該請求對象去互聯網中下載數據
6.數據下載成功後會被封裝到response中,隨後response會被交給下載器
7.下載器將response交給引擎
8.引擎將response交給spiders
9.spiders拿到response後調用回調方法進行數據解析,解析成功後生成item,隨後spiders將item交給引擎
10引擎將item交給管道,管道拿到item後進行數據的持久化存儲
Scrapy五大核心組件簡介