设置
我正在使用Scrapy 0.24.4和Scrapy-ElasticSearch 0.5来抓取网站并将结果存储在我运行的弹性搜索实例中。
我已经使用this blog post设置了所有内容,并进行了我记录here的小修改。
settings.py
BOT_NAME = 'blah'
SPIDER_MODULES = ['blah.spiders']
NEWSPIDER_MODULE = 'blah.spiders'
ITEM_PIPELINES = [
'scrapyelasticsearch.scrapyelasticsearch.ElasticSearchPipeline', 100
]
ELASTICSEARCH_SERVER = 'localhost'
ELASTICSEARCH_PORT = 9200
ELASTICSEARCH_INDEX = 'scrapy'
ELASTICSEARCH_TYPE = 'items'
问题
如果我运行以下命令来抓取网站:
scrapy crawl wiki -o wiki.json
将ITEM_PIPELINES注释掉 - 然后它可以正常工作并将所有结果导出到wiki.json文件。
取消注释ITEM_PIPELINES(例如设置为启用管道结果到elasticsearch) - 我收到以下错误:
File "/usr/local/lib/python2.7/dist-packages/scrapy/utils/misc.py", line 34, in load_object
dot = path.rindex('.')
AttributeError: 'int' object has no attribute 'rindex'
备注
非常感谢任何帮助。
答案 0 :(得分:0)
不推荐使用ITEM_PIPELINES列表,因此它需要是一个字典,但我转换为字典的尝试非常严重:
ITEM_PIPELINES = [
'scrapyelasticsearch.scrapyelasticsearch.ElasticSearchPipeline', 100
]
这是无效的语法。应该是:
ITEM_PIPELINES = {
'scrapyelasticsearch.scrapyelasticsearch.ElasticSearchPipeline': 100
}