#自定制扩展,可以在引擎开始,结束,空闲的任意时候执行任务
1.新建一个py文件extensions
from scrapy import signals
class MyExtend:
def __init__(self,crawler):
self.crawler = crawler
#在指定信号上注册操作
crawler.signals.connect(self.start,signals.engine_started)
crawler.signals.connect(self.close,signals.spider_closed)
@classmethod
def from_crawler(cls,crawler):
return cls(crawler)
def start(self):
print('signals.engine_started.start')
def close(self):
print('signals.spider_closed.close')
2.在setting.py中进行配置
EXTENSIONS = {
'pabokeyuan.extensions.MyExtend': 300,
}
3.调用引擎,可以发现在调用代码结果的前后可以出现
signals.spider_closed.start
代码执行的结果
signals.spider_closed.close
在signals.spider_closed.start和signals.spider_closed.close这俩个模块的位置可以写入任何操作。