2016-02-21 58 views
1

方案与多个蜘蛛Scrapy项目 - 自定义设置忽略

多蜘蛛
  • 单scrapy项目。
  • 每个蜘蛛定义的自定义设置。

问题:

  • 在执行时(即scrapy抓取...)蜘蛛的自定义设置执行正由在同一项目中另一个蜘蛛的自定义设置覆盖。

spider01.py

class FirstXmlSpider(XMLFeedSpider): 

# Spider Name 
name = 'spider01' 

# Initialise Settings 
now = datetime.datetime.now() 
settings.set('LOG_FILE', './logs/' + name + '_' + now.strftime("%Y%m%d_%H%M%S") + '.txt') 

spider02.py

class SecondXmlSpider(XMLFeedSpider): 

# Spider Name 
name = 'spider02' 

# Initialise Settings 
now = datetime.datetime.now() 
settings.set('LOG_FILE', './logs/' + name + '_' + now.strftime("%Y%m%d_%H%M%S") + '.txt') 

步骤来重现

  1. 执行scrapy抓取spider01
  2. 检查日志目录(期待查看以spider01_为前缀的日志文件)
  3. 请参阅具有正确内容但文件名错误(spider02_)的日志文件。

任何想法?我在过去用多个蜘蛛安装了scrapy项目,没有问题。不知道为什么我现在正在解决问题?

回答

0

由于Scrapy 1.0,您可以添加蜘蛛的自定义设置,无需更改项目的全局设置。只需在您的蜘蛛中添加一个名为custom_settings的属性即可。

看看文档:http://doc.scrapy.org/en/latest/topics/settings.html#settings-per-spider

+1

谢谢stumpjr。虽然这似乎适用于FEED_EXPORT_FIELDS,scrapy似乎忽略了LOG_FILE。我的语法有什么问题吗? custom_settings = {'FEED_EXPORT_FIELDS':['field_a','field_b','field_c'],'LOG_FILE':'A.log'} –