Scrapy 2.5 如何将特定Spider关联到对应的Feed Export导出配置
解决方案
可通过以下两种主流方式实现绑定,均符合Scrapy最新FEEDS使用规范:
- 方案一:爬虫自定义配置(适合不同爬虫导出规则差异大的场景)
不用在全局settings.py中配置通用FEEDS,直接在每个爬虫类中通过custom_settings属性定义专属的导出规则,该配置优先级高于全局配置,不会对其他爬虫产生影响。
示例代码(spider1为例):
spider2同理,修改FEEDS内的路径和配置即可。import scrapy class Spider1Spider(scrapy.Spider): name = "spider1" custom_settings = { "FEEDS": { "csv/<exportfilename-spider1>.csv": { "format": "csv", "overwrite": True } } } # 此处省略爬虫业务逻辑 - 方案二:全局配置动态占位符(适合不同爬虫导出规则一致、仅路径不同的场景)
直接在全局settings.py的FEEDS路径中使用%(name)s占位符,Scrapy运行时会自动读取当前执行爬虫的name属性填充到路径中,无需单独给每个爬虫做配置。
示例配置:
运行spider1时会自动导出到FEEDS = { "csv/exportfilename-%(name)s.csv": { "format": "csv", "overwrite": True } }csv/exportfilename-spider1.csv,运行spider2时自动匹配对应路径。
如果需要让部分爬虫不触发全局FEEDS规则,直接在对应爬虫的custom_settings中将FEEDS设为空字典即可:custom_settings = {"FEEDS": {}}
内容的提问来源于stack exchange,提问作者ImposterX1
相关产品推荐
相关产品推荐

