重试中间件的使用
来源:10-9 集成bloomfilter到scrapy-redis中
我是一只有宝贝的熊
2019-06-15
老师,我在练习scrapy 时,使用scrapy 对接百度api,它需要一个ak, 我申请了几个,首先在初始化时,从redis中读取其中一个,但是当ak超出限制的时候,它返回的还是200状态码,于是我在process_response中获取它的返回信息,可以正确的捕获超出限制状态,接下来我就需要更换ak, 我手动去redis删除,但是它的每个请求都会经过process_response, process_request, 因此,我的key无法全局更换,并且,我的key瞬间就被删除光了,我也尝试过改写retry_middleware,但不成功。。这种情况还有别的什么思路么?
写回答
1回答
-
因为scrapy是一个高并发的框架,所以可以在短时间内快速的发起多个请求,所以对于已经发送出去的请求,当然没办法在你修改了当前的response就去影响到其他所有的url了,但是还没有发送出去的url可以在process_request中拦截然后从redis中读取,你这里提到的key瞬间删光是什么意思?每个response不应该只是删除自己的的ak吗
142019-06-25
相似问题