1. 程式人生 > >python爬蟲之scrapy中介軟體介紹

python爬蟲之scrapy中介軟體介紹

一、概述

  1.中介軟體的作用

          在scrapy執行的整個過程中,對scrapy框架執行的某些步驟做一些適配自己專案的動作.

     例如scrapy內建的HttpErrorMiddleware,可以在http請求出錯時做一些處理.

       2.中介軟體的使用方法

          配置settings.py.詳見scrapy文件 https://doc.scrapy.org

 

二、中介軟體的分類

  scrapy的中介軟體理論上有三種(Schduler Middleware,Spider Middleware,Downloader Middleware),在應用上一般有以下兩種

       1.爬蟲中介軟體Spider Middleware

         主要功能是在爬蟲執行過程中進行一些處理.

  2.下載器中介軟體Downloader Middleware

         主要功能在請求到網頁後,頁面被下載時進行一些處理.

 

三、使用

      1.Spider Middleware有以下幾個函式被管理:

       - process_spider_input 接收一個response物件並處理,

         位置是Downloader-->process_spider_input-->Spiders(Downloader和Spiders是scrapy官方結構圖中的元件)

       - process_spider_exception spider出現的異常時被呼叫

       - process_spider_output 當Spider處理response返回result時,該方法被呼叫

       - process_start_requests 當spider發出請求時,被呼叫

    位置是Spiders-->process_start_requests-->Scrapy Engine(Scrapy Engine是scrapy官方結構圖中的元件)         

   2.Downloader Middleware有以下幾個函式被管理

   - process_request  request通過下載中介軟體時,該方法被呼叫

   - process_response 下載結果經過中介軟體時被此方法處理

   - process_exception 下載過程中出現異常時被呼叫

      編寫中介軟體時,需要思考要實現的功能最適合在那個過程處理,就編寫哪個方法.

      中介軟體可以用來處理請求,處理結果或者結合訊號協調一些方法的使用等.也可以在原有的爬蟲上新增適應專案的其他功能,這一點在擴充套件中編寫也可以達到目的,實際上擴充套件更加去耦合化,推薦使用擴充套件.