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 下載過程中出現異常時被調用

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

      中間件可以用來處理請求,處理結果或者結合信號協調一些方法的使用等.也可以在原有的爬蟲上添加適應項目的其他功能,這一點在擴展中編寫也可以達到目的,實際上擴展更加去耦合化,推薦使用擴展.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM