Scrapy 在不修改项目的情况下配置扩展

Scrapy 在不修改项目的情况下配置扩展,scrapy,Scrapy,我是否可以在不改变源代码的情况下,在scrapy项目中添加一个 spider将由系统用户提供,作为egg文件。我的要求是将爬行器抓取的数据推送到消息总线 但是,我不能很好地要求用户在项目中包含消息总线push extension.py。相反,我想监听ext.item\u scraped信号,并将该数据推送到我的服务中 我在scrapy.cfg中试过这个: [settings] default = tutorial.settings [extensions] tutorial.ext.Spider

我是否可以在不改变源代码的情况下,在scrapy项目中添加一个

spider将由系统用户提供,作为egg文件。我的要求是将爬行器抓取的数据推送到消息总线

但是,我不能很好地要求用户在项目中包含
消息总线push extension.py
。相反,我想监听
ext.item\u scraped
信号,并将该数据推送到我的服务中

我在scrapy.cfg中试过这个:

[settings]
default = tutorial.settings
[extensions]
tutorial.ext.SpiderOpenCloseLogging = 0
但是没有雪茄

扩展是正确的机制吗


谢谢

扩展在这里看起来很像,但是
scrapy.cfg
文件没有
[Extensions]
部分,至少框架不读取它们,只读取
[settings]
部分<代码>扩展是要更改的设置,以在项目中启用扩展。如果您可以更改
scrapy.cfg
,您是否可以控制设置?你说“我不能很好地要求用户包括…”,这是为什么?你能再解释一下你掌握了什么,以及用户将定制什么吗?@paultrmbrth我希望用户上传脚本,就像在scrapinghub中一样,并将结果自动存储在s3中。我想我可以强迫他们把s3设置放进去,但我更愿意用一个适用于任何spider的扩展来实现。哦,我打算和斯帕雷德一起管理蜘蛛。抱歉,如果这让人困惑的话,但我仍在努力解决这个问题。当爬行器完成时,通过总线上的某种消息得到通知也很好。我不太熟悉它的内部工作方式,但您可以检查Scrapinghub运行爬网的方式,并添加自定义扩展: