Estoy teniendo problemas con un pipe pipe. Mi información está siendo eliminada de los sitios y el método process_item se está llamando correctamente. Sin embargo, los métodos spider_opened y spider_closed no se están llamando.Pipeline spider_opened y spider_closed no se llama
class MyPipeline(object):
def __init__(self):
log.msg("Initializing Pipeline")
self.conn = None
self.cur = None
def spider_opened(self, spider):
log.msg("Pipeline.spider_opened called", level=log.DEBUG)
def spider_closed(self, spider):
log.msg("Pipeline.spider_closed called", level=log.DEBUG)
def process_item(self, item, spider):
log.msg("Processsing item " + item['title'], level=log.DEBUG)
Tanto los __init__
y process_item
mensajes de registro se displyed en el registro, pero los mensajes de registro y spider_open
spider_close
no lo son.
Necesito usar los métodos spider_opened y spider_closed porque quiero usarlos para abrir y cerrar una conexión a una base de datos, pero no aparece nada en el registro para ellos.
Si alguien ha sugerido que sería muy útil.
Gracias por su respuesta, pero ¿dónde obtiene la variable 'dispatcher'? ¿Y cómo es que no puedo encontrar esto en http://doc.scrapy.org/en/latest/topics/item-pipeline.html? :( – wrongusername
Para que esto funcione, debe asegurarse de importar lo siguiente: 'from scrapy.xlib.pydispatch import dispatcher' ' from scrapy import signals ' – herrherr