Scrapy:框架組成與工作原理——元件與資料流
阿新 • • 發佈:2019-01-22
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的進一步處理。