其他分享
首页 > 其他分享> > 爬虫框架Scrapy(6)Spider Middleware 的用法

爬虫框架Scrapy(6)Spider Middleware 的用法

作者:互联网

文章目录

五. Spider Middleware 的用法

Spider Middleware 是介入到 Scrapy 的 Spider 处理机制的钩子框架。当 Downloader 生成 Response 之后,Response 会被发送给 Spider,在发送给 Spider 之前,Response 会首先经过 Spider Middleware 处理,当 Spider 处理生成 Item 和 Request 之后,Item 和 Request 还会经过 Spider Middleware 的处理。Spider Middleware 有如下三个作用:

1. 使用说明

需要说明的是,Scrapy 其实已经提供了许多 Spider Middleware,它们被 SPIDER_MIDDLEWARES_BASE 这个变量所定义。 SPIDER_MIDDLEWARES_BASE 变量的内容如下:

{
    'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50,
    'scrapy.spidermiddlewares.offsite.OffsiteMiddleware': 500,
    'scrapy.spidermiddlewares.referer.RefererMiddleware': 700,
    'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware': 800,
    'scrapy.spidermiddlewares.depth.DepthMiddleware': 900,
}

和 Downloader Middleware 一样,Spider Middleware 首先加入到 SPIDER_MIDDLEWARES 设置中,该设置会和 Scrapy 中 SPIDER_MIDDLEWARES_BASE 定义的 Spider Middleware 合并。然后根据键值的数字优先级排序,得到一个有序列表。第一个 Middleware 是最靠近引擎的,最后一个 Middleware 是最靠近 Spider 的。

2. 核心方法

Scrapy 内置的 Spider Middleware 为 Scrapy 提供了基础的功能。如果我们想要扩展其功能,只需要实现某几个方法即可。 每个 Spider Middleware 都定义了以下一个或多个方法的类,核心方法有如下 4 个:

只需要实现其中一个方法就可以定义一个 Spider Middleware。这三种方法的详析用法可以参考 Python3网络爬虫开发实战教程]。

上述文章内容如有错误,欢迎各位读者在评论区留言!

标签:Middleware,发送给,spider,Spider,Item,Scrapy
来源: https://blog.csdn.net/qq_45617055/article/details/115136978