1. 程式人生 > >Scrapy五大核心組件簡介

Scrapy五大核心組件簡介

持久化存儲 重復 處理 持久化 簡介 成功 行數據 資源 事務

五大核心組件

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五大核心組件簡介