Scrapy源碼閱讀之Scrapy的五大組件

Scrapy五大組件介紹

Scrapy框架主要由五大組件組成,它們分別是調度器(Scheduler)、下載器(Downloader)、爬蟲(Spider)和實體管道(Item Pipeline)、Scrapy引擎(Scrapy Engine)。下面咱們分別介紹各個組件的做用。segmentfault

調度器

調度器,說白了能夠想像成一個URL(抓取網頁的網址或者說是連接)的優先隊列,由它來決定下一個要抓取的網址是什麼,同時去除重複的網址(不作無用功)。用戶能夠跟據本身的需求定製調度器。網絡

下載器

下載器,是全部組件中負擔最大的,它用於高速地下載網絡上的資源。Scrapy的下載器代碼不會太複雜,但效率高,主要的緣由是Scrapy下載器是創建在twisted這個高效的異步模型上的(其實整個框架都在創建在這個模型上的)。框架

爬蟲

爬蟲,是用戶最關心的部份。用戶定製本身的爬蟲,用於從特定的網頁中提取本身須要的信息,即所謂的實體(Item)。用戶也能夠從中提取出連接,讓Scrapy繼續抓取下一個頁面。異步

實體管道

實體管道,用於處理爬蟲提取的實體。主要的功能是持久化實體、驗證明體的有效性、清除不須要的信息。ide

Scrapy引擎

Scrapy引擎是整個框架的核心。它用來控制調試器、下載器、爬蟲。實際上,引擎至關於計算機的CPU,它控制着整個流程。spa

Scrapy運行流程

Scrapy的結構

Scrapy運行流程大概以下:調試

  1. 首先,引擎從調度器中取出一個連接(URL)用於接下來的抓取隊列

  2. 引擎把URL封裝成一個請求(Request)傳給下載器,下載器把資源下載下來,並封裝成應答包(Response)ip

  3. 而後,爬蟲解析Response資源

  4. 如果解析出實體(Item),則交給實體管道進行進一步的處理。

  5. 如果解析出的是連接(URL),則把URL交給Scheduler等待抓取

相關文章
相關標籤/搜索