python - Scrapy的爬虫中间件和下载器中间件有什么区别?

标签 python scrapy web-crawler

<分区>

两个中间件都可以处理Request和Response。但是有什么区别呢?

最佳答案

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

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

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

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

关于python - Scrapy的爬虫中间件和下载器中间件有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17872753/

相关文章:

javascript - 如何找出哪些网站使用我的 jQuery 插件?

python - ML - 特征选择后获取特征名称 - SelectPercentile,python

python - 是时候使用 Django 1.5 了吗?

python - Scrapy 可以和 Chrome 浏览器一起使用吗?

python - 在 Scrapy 中嵌套项目数据

python - Scrapy网站爬虫返回无效路径错误

python - 如何获取MySQL分组内的计数

python - Django 通过父 ID 查询,无需连接

c# - HtmlAgilityPack HtmlWeb.Load 返回空文档

python - 碎片或 Selenium : Can we get current html page after clicking a button?