Scrapy下载中间件Download Middleware

本文主要讲每个中间件的方法的处理过程

process_request 专门处理request

process_response 专门处理response

process_exception 专门处理exception,这个exception可以是process_request process_response 抛出的错误,也可以是下载器抛出的错误

中间件的处理就相当于一个流程线

中间件一 --------------->中间件二 ---------------------> 中间件三 ---------------->下载器

process_request1----->process_request2------->process_request3

process_response1---->process_response2---->process_response3

process_exception1---->process_exception2---->process_exception3

process_request有四种返回值:
第一种是None,返回None的话会由其他中间件的process_request方法继续处理request,
第二种是Request,返回Request的话会从第一个中间件的process_request开始处理request
第三种是response,这样的话会从第一个中间件的process_response开始处理
第四种是raise一个IgnoreRequest,会从第一个中间件的process_exception开始处理

process_response有三种返回值
第一种是Response,这样会继续下一个中间件的process_response开始处理,注意是下一个而不是第一个
第二种是Request,这样会到第一个中间件的process_request进行处理
第三种是IgnoreRequest,这样会到第一个中间件的process_exception进行处理
注意没有None类型,也就是说不支持从头处理Response,如果Response出现错误想要重新处理,那就return Request

process_exception
第一种是None ,这样会进行下一个中间件的process_exception
第二种是Request,会由第一个中间件的process_request执行
第三种是Response,会有第一个中间件的process_response执行

流程图
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值