mirror of https://github.com/scrapy/scrapy.git
Merge pull request #179 from artem-dev/errback_fix
This fixes the case where failure.request wasn't available when the failure was generated in a spider middleware (for example, the HttpError middleware).
This commit is contained in:
commit
1e1cc76fb7
|
|
@ -200,16 +200,12 @@ class ExecutionEngine(object):
|
|||
response=response, request=request, spider=spider)
|
||||
return response
|
||||
|
||||
def _on_error(failure):
|
||||
failure.request = request
|
||||
return failure
|
||||
|
||||
def _on_complete(_):
|
||||
slot.nextcall.schedule()
|
||||
return _
|
||||
|
||||
dwld = self.downloader.fetch(request, spider)
|
||||
dwld.addCallbacks(_on_success, _on_error)
|
||||
dwld.addCallbacks(_on_success)
|
||||
dwld.addBoth(_on_complete)
|
||||
return dwld
|
||||
|
||||
|
|
|
|||
|
|
@ -136,6 +136,7 @@ class Scraper(object):
|
|||
request_result, request, spider)
|
||||
|
||||
def call_spider(self, result, request, spider):
|
||||
result.request = request
|
||||
dfd = defer_result(result)
|
||||
dfd.addCallbacks(request.callback or spider.parse, request.errback)
|
||||
return dfd.addCallback(iterate_spider_output)
|
||||
|
|
|
|||
Loading…
Reference in New Issue