【问题标题】:Dynamic Scrapy settings动态 Scrapy 设置
【发布时间】:2014-09-23 02:43:09
【问题描述】:

我有一个包含多个蜘蛛的 Scrapy 项目。该项目托管在一个 scrapyd 实例上。 我希望能够动态更改项目 settings.py 文件中的设置(例如 DOWNLOADER_MIDDLEWARES)。

是否可以在向 scrapyd 实例发送请求时更改这些设置。请注意,我不想创建多个项目,因为这将导致跨项目重复公共代码。

谢谢

【问题讨论】:

    标签: scrapy scrapyd


    【解决方案1】:

    您可以将参数传递给 scrapyd 并使用 -d 参数更改设置

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

    【讨论】:

    • 用不同的设置文件启动scrapy怎么样,比如Django允许我们?
    • 谢谢,但是如何设置字典样式设置?我尝试了以下curl http://localhost:6800/schedule.json -d project=GenericCrawl -d spider=Generic -d "setting=ITEM_PIPELINES={'GenericCrawl.pipelines.DefaultValuesPipeline': 299,'GenericCrawl.pipelines.MySQL':300}" ,但收到以下错误[Launcher,4746/stderr] dictionary update sequence element #0 has length 1; 2 is required
    • 我没有尝试过,但我可能会设置一个在每个中间件中检查的变量,然后将其传递给 scrapyd。没有那么优雅,但它会起作用。
    • 我终于有机会回到这个话题了。最后,它看起来像传入一个“配置文件”变量,然后设置字典设置是唯一的方法。谢谢
    猜你喜欢
    • 1970-01-01
    • 2015-01-31
    • 2014-12-07
    • 1970-01-01
    • 2017-04-05
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多