我想将响应代码为423的请求推送回调度程序,因此我创建了一个downloadmiddleware:
class MyMiddleware(object):
def process_response(self, request, response, spider):
if response.status == 423:
return request
else:
return response
但它不起作用,即使请求不再在调度程序中。
谢谢你的帮助!
答案 0 :(得分:1)
您的新请求可能会被scrapy的dupefilter过滤掉。
您可以尝试添加dont_filter=True
参数:
def process_response(self, request, response, spider):
if response.status == 423:
request = request.replace(dont_filter=True)
return request
else:
return response
答案 1 :(得分:0)
您可以将这两项设置设置为scrapy_settings
:
RETRY_HTTP_CODES=[423]
RETRY_TIMES=10
scrapy会帮你解决这个问题。