1. 程式人生 > >二十七、scrapy的概念和工作流程

二十七、scrapy的概念和工作流程

1. scrapy的概念

Scrapy是一個為了爬取網站資料,提取結構性資料而編寫的應用框架,我們只需要實現少量的程式碼,就能夠快速的抓取。

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 爬蟲中介軟體。

3.7 scrapy中每個模組的具體作用

在這裡插入圖片描述