【问题标题】:What is the difference between Scrapy's spider middleware and downloader middleware? [closed]Scrapy蜘蛛中间件和下载器中间件有什么区别? [关闭]
【发布时间】:2013-07-26 04:10:13
【问题描述】:

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

【问题讨论】:

  • @MitchWheat:这可能看起来微不足道,但这是个好问题。
  • 似乎没有任何编程内容:看起来像是搜索引擎的问题。
  • @MitchWheat:两者之间的区别并不明显,文档中也没有解释。如果您不了解所涉及的框架,则投反对票和接近投票并没有真正的帮助。

标签: python scrapy web-crawler


【解决方案1】:

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

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

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

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

【讨论】:

  • 感谢对我有很大帮助的解决方案。能否请您在这里详细说明 DOWNLOADER_MIDDLEWARES 的作用。@Blender
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
  • 1970-01-01
  • 2017-12-27
  • 2019-12-08
  • 1970-01-01
  • 2019-04-09
相关资源
最近更新 更多