2
我试图与配置创建的SlyD使用scrapy-elasticsearch蜘蛛,所以我送-d parameter=value
进行配置:附表scrapyd蜘蛛和蜘蛛通过配置选项
curl http://localhost:6800/schedule.json -d project=myproject -d spider=myspider -d setting=CLOSESPIDER_ITEMCOUNT=100 -d settings=ITEM_PIPELINE=scrapyelasticsearch.ElasticSearchPipeline -d setting=ELASTICSEARCH_SERVER=localhost -d setting=ELASTICSEARCH_PORT=9200 -d setting=ELASTICSEARCH_INDEX=scrapy -d setting=ELASTICSEARCH_TYPE=items -d setting=ELASTICSEARCH_UNIQ_KEY=url
这是默认的配置,应该进入settings.py:
ITEM_PIPELINES = [
'scrapyelasticsearch.ElasticSearchPipeline',
]
ELASTICSEARCH_SERVER = 'localhost' # If not 'localhost' prepend 'http://'
ELASTICSEARCH_PORT = 9200 # If port 80 leave blank
ELASTICSEARCH_USERNAME = ''
ELASTICSEARCH_PASSWORD = ''
ELASTICSEARCH_INDEX = 'scrapy'
ELASTICSEARCH_TYPE = 'items'
ELASTICSEARCH_UNIQ_KEY = 'url'
我还没有找到一个方法来配置的SlyD与每个新蜘蛛自动生成这些设置,所以我想通过选项-d
参数。 scrapyd仍然运行的蜘蛛,但没有被保存到elasticsearch,错误日志显示如下:
[Launcher,1900/stderr] /home/PORTIA/local/lib/python2.7/site-packages/scrapy/contrib/pipeline/__init__.py:21:
ScrapyDeprecationWarning: ITEM_PIPELINES defined as a list or a set is deprecated, switch to a dict
category=ScrapyDeprecationWarning, stacklevel=1)
有没有办法将该字典作为参数发送到scrapyd休息?如果不是,我怎么能与所有蜘蛛共享相同的设置?我想要一种方法来设置一次并在所有项目中使用。 – localhost 2014-09-11 14:52:27
尽管这并没有回答将管道作为参数发送,但它确实有效,我最终只是设置了slyd的项目创建模板来添加它。 – localhost 2014-09-11 18:22:28