2014-09-23 153 views
0

我有一個單一的Scrapy項目與多個蜘蛛。該項目託管在一個scrapyd實例上。 我希望能夠動態更改項目settings.py文件(例如DOWNLOADER_MIDDLEWARES)中的設置。動態Scrapy設置

是否有可能在發送請求到scrapyd實例時更改這些設置。請注意,我不想創建多個項目,因爲這會導致跨項目複製通用代碼。

感謝

回答

1

您可以通過使用-d參數

curl http://localhost:6800/schedule.json -d project=myproject -d spider=somespider -d setting=DOWNLOAD_DELAY=2 -d arg1=val1 
+0

參數scrapyd和更改設置如何開始scrapy有不同的設置文件,像Django的讓我們嗎? – sergiuz 2014-09-23 13:14:50

+0

謝謝,但我將如何設置字典樣式設置? 我試過以下 'curl http:// localhost:6800/schedule.json -d project = GenericCrawl -d spider = Generic -d「setting = ITEM_PIPELINES = {'GenericCrawl.pipelines.DefaultValuesPipeline':299 , 'GenericCrawl.pipelines.MySQL':300}」 ' 但我得到以下錯誤 '[啓動,4746 /標準錯誤]詞典更新序列元素#0具有長度1; 2 is required' – trajan 2014-09-24 06:23:18

+0

我還沒有嘗試,但我可能會做的是設置一個變量,在每個中間件中檢查,然後將其傳遞給scrapyd。不夠優雅,但它會工作。 – dataisbeautiful 2014-09-24 06:41:43