2016-02-21 83 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'} –