mongodb - 在 scrapinghub spider 中添加设置

标签 mongodb scrapy scrapinghub

我正在尝试在 scrapinghub 平台的蜘蛛中启用 mongodb。为此,我必须通过 UI 中的“EXTENSIONS”设置启用扩展。但是,在运行蜘蛛时,出现以下错误:

ValueError: Some paths in "{'scrapy.contrib.feedexport.FeedExporter': None}" convert to the same object, please update your settings

我的设置如下:

EXTENSIONS = {'scrapy.contrib.feedexport.FeedExporter': None}

如果我删除此设置,则会出现以下错误:

exceptions.ValueError: Some paths in "{'scrapy_mongodb.MongoDBPipeline': 300}" convert to the same object, please update your settings

设置如下:

ITEM_PIPELINES = {'scrapy_mongodb.MongoDBPipeline': 300}

令人担忧的是这两个设置在本地 scrapyd 中都能正常工作。

最佳答案

Scrapy Cloud 将设置的任何给定值转换为字符串。在您的情况下,您使用的字典被解释为字符串 "{'scrapy.contrib.feedexport.FeedExporter': None}"

问题是Scrapy中不支持为EXTENSIONS设置一个字符串(实际上大部分取字典值的设置都不支持,一般是因为它们可以接受其他的值类型,因此将这些 strings 转换为 dict 可能会导致意外结果。

处理设置的 Scrapy 代码有一些变化,因此隐藏了实际问题,但应该就是这样。将您的设置仅放在项目设置文件 settings.py 中应该可以解决您的问题。

关于mongodb - 在 scrapinghub spider 中添加设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31005358/

相关文章:

mongodb - 我们对 mongodb 使用 nosql 就像对 oracle 使用 sql 一样?

java - 如何从 ReflectionDBObject 中获取正确类型的列表

python - 如何获取scrapyrt的POST元数据?

web-crawler - 从 scrapinghub 中删除蜘蛛

python - Scrapy 隐藏的内存泄漏

mongodb - Model.findOne 未按预期工作?

arrays - MongoDB 嵌入式 vs 数组子文档性能

python - Scrapy + 飞溅 + ScrapyJS

python - 在 Ubuntu 12.10 上安装 scrapy

mysql - ScrapingHub和远程数据库