scrapy中的下载器中间件

scrapy中的下载器中间件

下载中间件

process_request(request, spider)
requestprocess_request()NoneResponseRequestraise IgnoreRequest
Nonerequestdownload handlerrequestresponse
Responseprocess_request()process_exception()responseprocess_response()response
Requestprocess_requestrequestrequestresponse
raiseIgnoreRequestprocess_exception()requesterrback(Request.errback)
requestRequestrequestspiderSpiderrequestspider
process_response(request, response, spider)process_response()ResponseRequestraiseIgnoreRequest
Responseresponseresponseprocess_response()
Requestrequestprocess_request()request
IgnoreRequestrequest的errback(Request.errback)。
requestRequestresponseresponseResponsespiderSpiderresponsespider
process_exception(request, exception, spider)download handlerprocess_request()IgnoreRequestprocess_exception()
process_exception()NoneResponseRequest
Noneprocess_exception()
Responseprocess_response()process_exception()
Requestrequestprocess_exception()response
requestRequestrequestexceptionExceptionspiderSpiderrequestspider

总结:

总的来说下载器中间件就是起到处理request请求并且返回response的作用,一切从网页爬取的url发起的请求会组成一个请求队列,然后一个一个排队经过下载器中间件,之后下载器中间件会对request做出相应的处理,比如添加请求头,添加代理等等,然后通过process_response返回一个response,之后就是用得到的response做出相应的分析,当然这里的内容页可以不实现,但是如果要爬取大型的网站,会遇到被ban的可能就要在下载器中间件这里着手,设置一些相应的请求头,ip代理等等内容。

以上纯属个人逐渐摸索总结出来的内容,如果有什么错误欢迎指正

版权信息所有者:chenjiabing