1. 程式人生 > >Scrapy中Middleware和Item Pipeline的用法

Scrapy中Middleware和Item Pipeline的用法

Middleware

資料流向:

        當Downloader生成Response之後,Response會被髮送給Spider,在傳送之前,會經過Middleware處理,當Spider處理生成Item和Request之後,Item和Request還會經過Middleware處理。

作用:

1.Response傳送給Spider之前對Response進行處理

2.Request傳送給Scheduler之前對Request進行處理

3.在Item傳送給Item Pipeline之前對Item進行處理。

核心方法

process_spider_input

當Response被Spider Middleware處理,此方法被呼叫

process_spider_output

當Spider處理Response返回結果時,此方法被呼叫

process_spider_exception

丟擲異常時,被呼叫

process_start_requests

以Spider啟動的Request為引數被呼叫。

 

Item Pipeline

功能

1.清洗資料

2.驗證爬取資料,檢查爬取欄位

3.查重和去重

4.存入資料庫

核心方法

process_item(self, item, spider):

      必須要實現的方法,Item Pipeline會預設呼叫這個方法對Item進行處理。例如:清洗資料,存庫。必須返回Item的型別或者丟擲異常。

引數:

item  被處理的物件

spider  生成該item的spider

還可以有如下自定義的方法:

def open_spider(self,spider):
    pass

Spider開啟時呼叫,做初始化操作,例如:資料庫連線

def close_spider(self,spider):
    pass

Spider關閉時呼叫,例如:關閉資料庫