Scrapy——Spider Middleware

爬蟲中間件(Spider Middleware)

爬蟲中間件的用法與下載器中間件很是類似,只是它們的做用對象不一樣。下載器中間件的做用對象是請求request和返回response;爬蟲中間件的做用對象是爬蟲,更具體地來講,就是寫在spiders文件夾下面的各個文件。它們的關係,在Scrapy的數據流圖上能夠很好地區分開來,以下圖所示。scrapy

其中,四、5表示下載器中間件,六、7表示爬蟲中間件。爬蟲中間件會在如下幾種狀況被調用。ide

  1. 當運行到yield scrapy.Request()或者yield item的時候,爬蟲中間件的process_spider_output()方法被調用。
  2. 當爬蟲自己的代碼出現了Exception的時候,爬蟲中間件的process_spider_exception()方法被調用。
  3. 當爬蟲裏面的某一個回調函數parse_xxx()被調用以前,爬蟲中間件的process_spider_input()方法被調用。
  4. 當運行到start_requests()的時候,爬蟲中間件的process_start_requests()方法被調用。
相關文章
相關標籤/搜索