Python爬蟲程式設計思想(159):Scrapy中的爬蟲中介軟體

語言: CN / TW / HK

爬蟲中介軟體(Spider Middleware)是Spider處理機制的構造框架,我們首先來看一下爬蟲中介軟體的架構。

當爬蟲向服務端傳送請求之前,會經過爬蟲中介軟體處理。下載器(Downloader)生成 Response之後,Response會被髮送給 Spider,在傳送給 Spider之前,Response會首先經過爬蟲中介軟體處理,當Spider處理生成Item後,也會經過爬蟲中介軟體處理。所以爬蟲中介軟體會在如下3個位置起作用。

  • 向服務端傳送Request之前,也就是在Request傳送給排程器(Scheduler)之前對Request進行處理。
  • 在Downloader生成Response,併發送給Spider之前,也就是在Response傳送給Spider之前對Response進行處理。
  • 在Spider生成Item,併發送給Item管道(Item Pipeline)之前,也就是在處理Response的方法返回Item物件之前對Item進行處理。

1. 內建爬蟲中介軟體

與下載器中介軟體一樣,Scrapy也提供了很多內建的爬蟲中介軟體,這些內建爬蟲中介軟體都在SPIDER_MIDDLEWARES_BASE變數中定義,程式碼如下:

{

'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50,

'scrapy.spidermiddlewares.offsite.OffsiteMiddleware': 500,

'scrapy.spidermiddlewares.referer.RefererMid

「其他文章」