scrapy的下载中间件我看了教程说:
process_request(self, request, spider)方法返回一个response对象就不会去调用其他下载中间件的组件
可是这个方法都没有response参数我怎么返回一个response对象
找了好久也没有找到答案
但是返回一个None或者不会返回则会去调用process_response(self, request, response, spider)方法
这是源代码:
[Asm] 纯文本查看 复制代码 class IPProxyDownloaderMiddleware(object):
IP_PROXY = [
]
def process_request(self, request, spider):
print("调用了请求中间件")
print(request)
for i in default_settings.DOWNLOADER_MIDDLEWARES:
print(i)
return None
def process_response(self, request, response, spider):
print("调用了响应中间件")
print(response.text)
return response
运行结果是这样的:
--------------------------------------------------------------------
[Asm] 纯文本查看 复制代码 爬虫开启
调用了请求中间件
<GET http://www.xinfadi.com.cn/marketanalysis/0/list/1037.shtml>
调用了系统的中间件
调用了响应中间件
正在写入第1037页数据
--------------------------------------------------------------------
我怎么让他不去调用系统的中间件呢,或者说这个request方法是满足了什么条件才会去运行当前中间件的response方法
求解 |