您的位置:首页 > 其它

爬虫Scrapy框架之学习使用(二):DownloaderMiddleWares

2018-01-25 08:14 260 查看

DownloaderMiddleWares主要有三个方法:

def process_request(self, request, spider):#处理请求

def process_response(self, request, response, spider):#处理响应

def process_exception(self, request, exception, spider):#处理异常

中间件的流程和Django的中间件的流程一样,都是一层层进行处理,但是有点不一样的地方:如果请求或者异常被中途拦截了,那么会从响应的时的第一层开始回传,也就是请求的最后一层,这个地方需要注意下。



process_request:

这里面我们可以对请求进行再次处理,比如添加请求头、添加代理等。

返回值:

None,继续执行后续中间间;

response对象,停止执行process_request,开始执行process_response;

request对象,停止中间件的执行,直接把request交给调度器

raise IgnoreRequest抛异常,停止process_request执行,proccess_exception被触发执行。

process_response:

返回值:

response对象,交给其他中间件process_response执行;

request对象,会直接返回交给调度器;

raise IgnoreRequest异常,触发执行Request.errback

process_exception:

返回值

None,交给后续中间件处理异常;

response对象,触发process_response执行,停止process_exception;

request对象,会交给调度器重新发起请求。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  中间件