dont try to guess if spider output is iterable for Items and Requests objects

This commit is contained in:
Daniel Grana 2009-08-24 01:25:14 -03:00
parent 6e2bd49a81
commit 73e7788ba2
2 changed files with 8 additions and 2 deletions

View File

@ -128,7 +128,13 @@ class Scraper(object):
def call_spider(self, result, request, spider):
defer_result(result).chainDeferred(request.deferred)
return request.deferred.addCallback(arg_to_iter)
return request.deferred.addCallback(self._iterable_spider_output)
def _iterable_spider_output(self, result):
if isinstance(result, (BaseItem, Request)):
return [result]
else:
return arg_to_iter(result)
def handle_spider_error(self, _failure, request, spider, propagated_failure=None):
referer = request.headers.get('Referer', None)

View File

@ -40,7 +40,7 @@ class TestSpider(BaseSpider):
m = self.price_re.search(response.body)
if m:
item['price'] = m.group(1)
return [item]
return item
SPIDER = TestSpider()