作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在使用 scrapy 管道时遇到了一些问题。我的信息正在从网站上抓取,并且 process_item 方法被正确调用。然而,spider_opened 和 spider_closed 方法没有被调用。
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_open
和 spider_close
日志消息不是。
我需要使用 spider_opened 和 spider_closed 方法,因为我想使用它们来打开和关闭与数据库的连接,但日志中没有显示它们的任何内容。
如果有人有任何建议,那将非常有用。
最佳答案
抱歉,刚发完就发现了。您必须添加:
dispatcher.connect(self.spider_opened, signals.spider_opened)
dispatcher.connect(self.spider_closed, signals.spider_closed)
在 __init__
中,否则它永远不会收到调用它的信号
关于python - 未调用 Scrapy 管道 spider_opened 和 spider_closed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4113275/
我在使用 scrapy 管道时遇到了一些问题。我的信息正在从网站上抓取,并且 process_item 方法被正确调用。然而,spider_opened 和 spider_closed 方法没有被调用
我是一名优秀的程序员,十分优秀!