Scrapy中Middleware和Item Pipeline的用法
阿新 • • 發佈:2018-11-30
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關閉時呼叫,例如:關閉資料庫