1. 程式人生 > >scrapy框架流程

scrapy框架流程

scrapy框架是基於python的爬蟲框架,大致流程如下:
在這裡插入圖片描述

scrapy 是一個為了爬取網站資料,提取結構性資料而編寫的應用框架,我們只需要實現少量程式碼,
就能夠快速的抓取到資料內容。 Scrapy 使用了 Twisted’twɪstɪd非同步網路框
架來處理網路通訊,可以加快我們的下載速度,不用自己去實現非同步框架,並且包含了各種中介軟體介面,
可以靈活的完成各種需求。
scrapy 框架的工作流程:
1.首先Spiders(爬蟲)將需要傳送請求的url(requests)經ScrapyEngine(引擎)交給Scheduler
(排程器)。
2.Scheduler(排序,入隊)處理後,經ScrapyEngine,DownloaderMiddlewares(可選,主要
有User_Agent, Proxy代理)交給Downloader。
3.Downloader向網際網路傳送請求,並接收下載響應(response)。將響應(response)經
ScrapyEngine,SpiderMiddlewares(可選)交給Spiders。
4.Spiders處理response,提取資料並將資料經ScrapyEngine交給ItemPipeline儲存(可以是本
地,可以是資料庫)。提取url重新經ScrapyEngine交給Scheduler進行下一個迴圈。直到無Url
請求程式停止結束。

scrapy 是一個Python爬蟲框架,爬取效率極高,具有高度定製性,但是不支援分散式。而
scrapy-redis一套基於redis資料庫、執行在scrapy 框架之上的元件,可以讓scrapy 支援分散式策略,
Slaver端共享Master 端redis資料庫裡的item佇列、請求佇列和請求指紋集合。
為什麼選擇redis資料庫,因為redis支援主從同步,而且資料都是快取在記憶體中的,所以基於redis
的分散式爬蟲,對請求和資料的高頻讀取效率非常高