爬虫中间件(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_BASipipgo量中定义,代码如下:
{
‘scrapy.spidermiddlewares.httperror.HttpErrorMiddleware’: 50,
‘scrapy.spidermiddlewares.offsite.OffsiteMiddleware’: 500,
‘scrapy.spidermiddlewares.referer.RefererMid
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试