scrapy爬虫自定义下载中间件
scrapy的下载中间件我看了教程说:process_request(self, request, spider)方法返回一个response对象就不会去调用其他下载中间件的组件
可是这个方法都没有response参数我怎么返回一个response对象
找了好久也没有找到答案
但是返回一个None或者不会返回则会去调用process_response(self, request, response, spider)方法
这是源代码:
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
运行结果是这样的:
--------------------------------------------------------------------
爬虫开启
调用了请求中间件
<GET http://www.xinfadi.com.cn/marketanalysis/0/list/1037.shtml>
调用了系统的中间件
调用了响应中间件
正在写入第1037页数据
--------------------------------------------------------------------
我怎么让他不去调用系统的中间件呢,或者说这个request方法是满足了什么条件才会去运行当前中间件的response方法
求解{:1_893:} https://doc.scrapy.org/en/latest/intro/tutorial.html
送你一本秘籍 QingYi. 发表于 2021-7-17 16:49
https://doc.scrapy.org/en/latest/intro/tutorial.html
送你一本秘籍
我看了有一会了,实在是理解不了明明process_request方法没有这个response参数,他怎么返回一个response对象{:1_924:} 三木零 发表于 2021-7-17 17:07
我看了有一会了,实在是理解不了明明process_request方法没有这个response参数,他怎么返回一个response ...
你吃完苹果是不是会把果核吐出来?处理完请求是不是会把对应的处理完的resp给你? 重写一下MIDDLEWARES QingYi. 发表于 2021-7-17 17:25
你吃完苹果是不是会把果核吐出来?处理完请求是不是会把对应的处理完的resp给你?
我就是不吐,未尝不可;www QingYi. 发表于 2021-7-17 17:25
你吃完苹果是不是会把果核吐出来?处理完请求是不是会把对应的处理完的resp给你?
这个倒是知道,就是他文档的那句返回一个response响应就会去处理下一个url请求,他那个返回response响应是指process_response返回的还是,process_request返回的 52爬虫,感谢分享 感谢分享,爬虫自定义下载
页:
[1]