首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未调用Scrapy管道spider_opened和spider_closed

未调用Scrapy管道spider_opened和spider_closed
EN

Stack Overflow用户
提问于 2010-11-06 21:29:33
回答 2查看 7K关注 0票数 13

我的输油管出了点问题。我的信息正在从站点中被抓取,并且process_item方法被正确调用。但是,没有调用spider_opened和spider_closed方法。

代码语言:javascript
复制
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)

__init__process_item日志记录消息都显示在日志中,但spider_openspider_close日志记录消息不显示。

我需要使用spider_opened和spider_closed方法,因为我想使用它们打开和关闭到数据库的连接,但是它们的日志中没有显示任何内容。

如果有人有任何建议,那将是非常有用的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-06 21:39:50

对不起,我刚发完这篇文章就找到了。您必须添加以下内容:

代码语言:javascript
复制
dispatcher.connect(self.spider_opened, signals.spider_opened)
dispatcher.connect(self.spider_closed, signals.spider_closed)

__init__中,否则它永远不会收到调用它的信号

票数 11
EN

Stack Overflow用户

发布于 2014-05-13 03:02:53

正确的方法名称是open_spiderclose_spider,而不是spider_openedspider_closed。文档记录在这里:http://doc.scrapy.org/en/latest/topics/item-pipeline.html#writing-your-own-item-pipeline

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4113275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档