diff --git a/scrapy/core/scraper.py b/scrapy/core/scraper.py index 18095216e..84f9c958a 100644 --- a/scrapy/core/scraper.py +++ b/scrapy/core/scraper.py @@ -5,7 +5,7 @@ from twisted.python.failure import Failure from twisted.internet import defer from scrapy.utils.defer import defer_result, defer_succeed, parallel -from scrapy.utils.misc import load_object +from scrapy.utils.misc import load_object, arg_to_iter from scrapy.utils.signal import send_catch_log from scrapy.core.exceptions import IgnoreRequest, DropItem from scrapy.core import signals @@ -131,7 +131,7 @@ class Scraper(object): return request.deferred.addCallback(self._iterable_spider_output) def _iterable_spider_output(self, result): - return [result] if isinstance(result, (BaseItem, Request)) else result + return [result] if isinstance(result, BaseItem) else arg_to_iter(result) def handle_spider_error(self, _failure, request, spider, propagated_failure=None): referer = request.headers.get('Referer', None)