<分区>
两个中间件都可以处理Request和Response。但是有什么区别呢?
<分区>
两个中间件都可以处理Request和Response。但是有什么区别呢?
最佳答案
虽然它们具有几乎相同的界面,但它们的用途不同:
下载器中间件修改请求和响应或生成请求以响应响应。他们不直接与蜘蛛互动。一些示例是实现 cookie、缓存、代理、重定向、设置用户代理 header 等的中间件。它们只是向下载器系统添加功能。
蜘蛛中间件修改传入和传出蜘蛛的内容,例如请求、项目、异常和start_requests
。它们确实与下载器中间件共享一些基本功能,但它们不能生成响应响应的请求。他们站在蜘蛛和下载器之间。一个示例是过滤掉具有错误 HTTP 状态代码的响应。
一些中间件既可以用作下载器中间件,也可以用作蜘蛛中间件,但它们通常是微不足道的,一旦您添加了更复杂的功能,它们就会被迫归为一类或另一类。
关于python - Scrapy的爬虫中间件和下载器中间件有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17872753/