python - ¿Por qué estoy recibiendo KeyError in Scrapy?
django celery (1)
Estoy usando arañas Scrapy dentro de Aplery y recibo este tipo de errores al azar
Unhandled Error
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/twisted/internet/base.py", line 428, in fireEvent
DeferredList(beforeResults).addCallback(self._continueFiring)
File "/usr/lib/python2.7/site-packages/twisted/internet/defer.py", line 321, in addCallback
callbackKeywords=kw)
File "/usr/lib/python2.7/site-packages/twisted/internet/defer.py", line 310, in addCallbacks
self._runCallbacks()
File "/usr/lib/python2.7/site-packages/twisted/internet/defer.py", line 653, in _runCallbacks
current.result = callback(current.result, *args, **kw)
--- <exception caught here> ---
File "/usr/lib/python2.7/site-packages/twisted/internet/base.py", line 441, in _continueFiring
callable(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/twisted/internet/base.py", line 667, in disconnectAll
selectables = self.removeAll()
File "/usr/lib/python2.7/site-packages/twisted/internet/epollreactor.py", line 191, in removeAll
[self._selectables[fd] for fd in self._reads],
exceptions.KeyError: 94
El número cambia de un caso a otro (94 podría ser 97 en otro caso y así sucesivamente)
Estoy usando:
celery==3.1.19
Django==1.9.4
Scrapy==1.3.0
Así es como administro Scrapy dentro de Apio:
from billiard import Process
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
class MyCrawlerScript(Process):
def __init__(self, **kwargs):
Process.__init__(self)
settings = get_project_settings(''my_scraper'')
self.crawler = CrawlerProcess(settings)
self.spider_name = kwargs.get(''spider_name'')
self.kwargs = kwargs
def run(self):
self.crawler.crawl(self.spider_name, qwargs=self.kwargs)
self.crawler.start()
def my_crawl_manager(**kwargs):
crawler = MyCrawlerScript(**kwargs)
crawler.start()
crawler.join()
Dentro de una tarea de apio, estoy llamando:
my_crawl_manager(spider_name=''my_spider'', url=''www.google.com/any-url-here'')
¿Alguna idea de por qué está pasando esto?
Tuve este problema una vez.
Compruebe si tiene un archivo __init__.py
vacío en las carpetas spiders
o. Debe estar allí.