J'ai des problèmes avec un pipeline en ferraille. Mes informations sont en train d'être corrigées des sites de formulaire et la méthode process_item est appelée correctement. Cependant, les méthodes spider_opened et spider_closed ne sont pas appelées.Le pipeline scrapy spider_opened et spider_closed ne s'appellent pas
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)
Tant les messages de journalisation __init__
et process_item
sont displyed dans le journal, mais les messages de journalisation spider_open
et spider_close
ne sont pas.
Je dois utiliser les méthodes spider_opened et spider_closed car je veux les utiliser pour ouvrir et fermer une connexion à une base de données, mais rien ne s'affiche dans le journal.
Si quelqu'un a suggéré que ce serait très utile.
Merci pour votre réponse, mais où obtenez-vous la variable 'dispatcher'? Et comment se fait-il que je ne trouve pas cela sur http://doc.scrapy.org/en/latest/topics/item-pipeline.html? :( – wrongusername
Pour que cela fonctionne, vous devez vous assurer que vous importez les éléments suivants: 'from scrapy.xlib.pydispatch import dispatcher' ' from scrapy import signals' – herrherr