18

两个中间件都可以处理请求和响应。但是有什么区别呢?

4

1 回答 1

21

虽然它们具有几乎相同的接口,但它们的用途不同:

  • 下载器中间件修改请求和响应或生成请求以响应响应。他们不直接与蜘蛛互动。一些示例是实现 cookie、缓存、代理、重定向、设置用户代理标头等的中间件。它们只是向下载器系统添加功能。

  • 蜘蛛中间件修改传入和传出蜘蛛的东西,如请求、项目、异常和start_requests. 它们确实与下载器中间件共享一些基本功能,但它们无法生成请求以响应响应。他们站在蜘蛛和下载器之间。一个例子是过滤掉带有错误 HTTP 状态代码的响应。

一些中间件既可以用作下载器中间件,也可以用作蜘蛛中间件,但它们通常是微不足道的,一旦您添加更复杂的功能,它们就会被强制归为一类或另一类。

于 2013-07-26T04:23:39.607 回答