Python爬虫编程思想(159):Scrapy中的爬虫中间件

Posted 蒙娜丽宁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python爬虫编程思想(159):Scrapy中的爬虫中间件相关的知识,希望对你有一定的参考价值。

        爬虫中间件(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

以上是关于Python爬虫编程思想(159):Scrapy中的爬虫中间件的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫编程思想(159):Scrapy中的爬虫中间件

Python爬虫编程思想(161):Scrapy中的通用爬虫

Python爬虫编程思想(161):Scrapy中的通用爬虫

Python爬虫编程思想(161):Scrapy中的通用爬虫

Python爬虫编程思想(161):Scrapy中的通用爬虫

Python爬虫编程思想(144):爬虫框架Scrapy的基础知识