scrapy中介軟體

2022-08-22 19:18:15 字數 1406 閱讀 9561

方法:

process_request(self,request,spider):

返回為none:繼續請求

返回為request物件,把request物件交給排程器,進行後續請求

返回為response物件,不再請求,response交給引擎然後給爬蟲

這個方法可以給request請求增加**ip,cookie,user-agent,還可以整合selenium,返回htmlresponse(url,body=,request=,encoding=)

process_response(self,request,response,spider):

返回為request物件,交給排程器繼續請求

返回為response物件,交給下乙個process_response處理

這個方法,可以進行cookie池的維護,或者對response進行md5加密,判斷頁面是否變化

process_exception(request,exception,spider):

返回為none,呼叫其他process_exception方法繼續處理,直到所有中介軟體呼叫完畢,呼叫預設的異常處理

返回為response物件,異常糾正,交給下乙個process_response處理

返回為request物件,交給排程器繼續請求

爬蟲中介軟體(spider middlewares):處理解析資料(item)的相關邏輯修正,比如資料不完整新增預設、增加其他額外資訊。(處理輸入response的跨域或robots攔截,輸出item或request)

方法:process_spider_input(self,response,spider):

response通過中介軟體,該方法呼叫

返回none,交給下乙個process_spider_input處理

process_spider_output(self,response,result,spider):

當spider處理response返回reult,該方法呼叫

該方法必須返回包含requset或item物件的可迭代物件iterable

process_spider_exception(response,exception,spider):

當spider或process_spider_input丟擲異常時,該方法呼叫

返回為none,交給其他process_spider_exception繼續處理

返回乙個包含responser或item物件的可迭代物件(iterable),交給其process_spider_output方法

process_start_request(start_request,spider):

spider啟動start_requests() 時呼叫

接受乙個可迭代物件(start_request引數)且必須返回乙個包含request物件的可迭代物件

scrapy中介軟體

被呼叫時返回none 在建立專案時,在middlewares.py檔案中生成的爬蟲中介軟體,其中幾個函式如下 1 process spider input response,spider 當response傳給spider的解析函式前呼叫,返回none或異常 2 process spider out...

Scrapy詳解之中介軟體(Middleware)

概述 每當scrapy進行乙個request請求時,這個方法被呼叫。通常它可以返回 1.none 2.response物件 3.request物件 4.丟擲ignorerequest物件 通常返回none較常見,它會繼續執行爬蟲下去。其他返回情況參考這裡 user agent中介軟體 from fa...

scrapy中介軟體自定義

二 定義動態proxy中介軟體 在middlewares.py檔案中,編寫useragentmiddlerware中介軟體,可以隨機動態設定user agent from fake useragent import useragent 自定義動態user agent中介軟體 class userag...