1. 程式人生 > >Scrapy:框架組成與工作原理——元件與資料流

Scrapy:框架組成與工作原理——元件與資料流

Scrapy元件與資料流

1.Scrapy元件與資料流

ENGINE:引擎,是scrapy框架的核心;內部元件
SCHEDULER:排程器,負責對SPIDER提交的下載請求進行排程;內部元件
DOWNLOADER:下載器,負責下載頁面,即傳送HTTP請求和接受HTTP響應;內部元件
SPIDER:爬蟲,負責從頁面解析和提取資料,以及生成新的HTTP請求,使用者元件
MIDDLEWARE:中介軟體,負責對HTTP請求和接受HTTP響應進行處理;可選元件
ITEM PIPELINE:資料管道,負責對爬取的資料進行處理,如去重、寫入資料庫等

對開發者來說,Spider是最核心的元件

2.Scrapy框架資料流

Scrapy資料流中涉及到三種物件:
Request:Scrapy框架中的HTTP請求物件。
Response:Scrapy框架中的HTTP響應框架。
Item:從頁面中提取的資料物件

流程圖

#流程:
1.Spider將要爬取頁面的URL構造Request物件,提交給Engine;圖1

2.Request由Engine進入Scheduler,按照某種排程演算法排隊,之後某個時候從佇列中出來,由Engine提交給Downloader;圖2、3、4

3.Downloader根據Request中的URL地址傳送一次HTTP請求到目標網站伺服器,接受伺服器返回的HTTP響應並構建一個Response物件(圖5)並由Engine將Response提交給Spider(圖6)

4.Spider提取Response中的資料,構造出item物件或者根據新的連結構造出Request物件,如果是Item物件,由Engine提交給Item pipeline,如果是新的Request,由Engine提交給Scheduler;(圖7、8)

5.這個過程反覆進行,直到爬完所有的資料,同時,資料物件在出入Spider和Downloader的時候可能會經過Middleware的進一步處理。