二十七、scrapy的概念和工作流程
阿新 • • 發佈:2018-12-22
1. scrapy的概念
Scrapy是一個為了爬取網站資料,提取結構性資料而編寫的應用框架,我們只需要實現少量的程式碼,就能夠快速的抓取。
-
Scrapy 使用了Twisted['twɪstɪd]非同步網路框架,可以加快我們的下載速度。
-
Scrapy文件地址:http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html
2. scrapy框架的作用
少量的程式碼,就能夠快速的抓取
3. scrapy的工作流程
3.1 回顧之前的爬蟲流程
3.2 上面的流程可以改寫為
3.3 scrapy的流程
其流程可以描述如下:
- 爬蟲中起始的url構造成request物件–>爬蟲中介軟體–>引擎–>排程器
- 排程器把request–>引擎–>下載中介軟體—>下載器
- 下載器傳送請求,獲取response響應---->下載中介軟體---->引擎—>爬蟲中介軟體—>爬蟲
- 爬蟲提取url地址,組裝成request物件---->爬蟲中介軟體—>引擎—>排程器,重複步驟2
- 爬蟲提取資料—>引擎—>管道處理和儲存資料
注意:
- 圖中中文是為了方便理解後加上去的
- 圖中綠色線條的表示資料的傳遞
- 注意圖中中介軟體的位置,決定了其作用
- 注意其中引擎的位置,所有的模組之前相互獨立,只和引擎進行互動
3.4 scrapy的三個內建物件
- request請求物件:由url、method、post_data、headers等構成
- response響應物件:由url 、body、status、headers等構成
- item資料物件:本質是個字典
3.5 scrapy的五個功能模組
模組 | 功能 |
---|---|
engine 引擎 | 呼叫其它功能模組的函式,組織執行邏輯 |
spider 爬蟲 | url構造request物件、解析response物件 |
scheduler 排程器 | 實現了一個 請求佇列 :request入隊、從請求佇列中取出一個request |
downloader 下載器 | 傳送請求獲取響應 |
pipeline 管道 | 對資料進行處理 |
3.6 scrapy的兩個中介軟體
作用:對經過的request response進行預處理
- 倆箇中間件功能是重複的
- 只是根據邏輯位置不同,分為:downlaoder_middlewares 下載中介軟體、spider_middlewares 爬蟲中介軟體。