Sto riscontrando qualche problema con un oleodotto scrapy. Le mie informazioni vengono raschiate dai siti ok e il metodo process_item viene chiamato correttamente. Tuttavia i metodi spider_opened e spider_closed non vengono chiamati.Pipeline scrapy spider_opened e spider_closed non vengono chiamati
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)
Sia i messaggi di registrazione __init__
e process_item
sono displyed nel registro, ma i messaggi di registrazione spider_open
e spider_close
non lo sono.
Ho bisogno di usare i metodi spider_opened e spider_closed perché voglio usarli per aprire e chiudere una connessione a un database, ma non viene visualizzato nulla nel registro per loro.
Se qualcuno ha suggerito che sarebbe molto utile.
Grazie per la risposta, ma dove si ottiene la variabile 'dispatcher'? E come mai non riesco a trovarlo in http://doc.scrapy.org/en/latest/topics/item-pipeline.html? :( – wrongusername
Affinché funzioni, è necessario assicurarsi di importare le seguenti cose: 'da scrapy.xlib.pydispatch import dispatcher' ' da segnali di importazione scrapy' – herrherr