看了 scrapy 的官方文档,关于 signals 的函数在 from_crawler()中有如下示例代码:
crawler.signals.connect(ext.spider_opened, signal=signals.spider_opened) #代码 1
crawler.signals.connect(ext.spider_closed, signal=signals.spider_closed) #代码 2
对应两个方法定义如下:
def spider_opened(self, spider):
spider.log("opened spider %s" % spider.name)
def spider_closed(self, spider):
spider.log("closed spider %s" % spider.name)
恳请大家指点,上面代码中和 signals 的这几个函数和方法到底是完成了什么工作呢? 谢谢!
1
sunwei0325 2017-09-27 21:51:29 +08:00
主要是写 extension 用的, 配合几个 signal 当触发器用的, 具体可以看看内置的 extension 代码
|
2
cszhiyue 2017-09-28 14:57:59 +08:00
这里首先注册两个函数 spider_opened, spider_closed。当 spider 启动和关闭的时候会触发。有点类似 wrapper 的概念
比如爬虫结束可以执行一些清理的工作比如发邮件。 |
3
saximi OP |