diff --git a/scrapy/core/engine.py b/scrapy/core/engine.py index c544956a4..e019ada9f 100644 --- a/scrapy/core/engine.py +++ b/scrapy/core/engine.py @@ -233,6 +233,7 @@ class ExecutionEngine(object): next loop and this function is guaranteed to be called (at least) once again for this spider. """ + print ">>> spider_idle!" res = self.signals.send_catch_log(signal=signals.spider_idle, \ spider=spider, dont_log=DontCloseSpider) if any(isinstance(x, Failure) and isinstance(x.value, DontCloseSpider) \ diff --git a/scrapy/signalmanager.py b/scrapy/signalmanager.py index 4a3e3d92d..a80b32530 100644 --- a/scrapy/signalmanager.py +++ b/scrapy/signalmanager.py @@ -3,7 +3,7 @@ from scrapy.utils import signal class SignalManager(object): - def __init__(self, sender=dispatcher.Anonymous): + def __init__(self, sender=dispatcher.Any): self.sender = sender def connect(self, *a, **kw): diff --git a/scrapy/utils/misc.py b/scrapy/utils/misc.py index 139408939..c2842ca93 100644 --- a/scrapy/utils/misc.py +++ b/scrapy/utils/misc.py @@ -16,7 +16,7 @@ def arg_to_iter(arg): """ if arg is None: return [] - elif not isinstance(arg, dict) and not isinstance(arg, BaseItem) and hasattr(arg, '__iter__'): + elif not isinstance(arg, (dict, BaseItem)) and hasattr(arg, '__iter__'): return arg else: return [arg]