fix for request's errback, allows to get failed requests correctly

This commit is contained in:
Artem Bogomyagkov 2012-10-05 19:17:59 +03:00
parent eee8e70b7b
commit 0256a34f97
2 changed files with 2 additions and 5 deletions

View File

@ -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

View File

@ -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)