Добавить настройки в scrapinghub spider

Я пытаюсь включить mongodb в моем пауке на платформе scrapinghub. Для этого я должен включить расширение через настройку "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}

Беспокойство вызывает то, что обе настройки работают правильно в локальном скрейде.

1 ответ

Решение

Scrapy Cloud преобразует в строку любое заданное значение для настройки. В вашем случае используемый вами словарь интерпретируется как строка "{'scrapy.contrib.feedexport.FeedExporter': None}",

Проблема в том, что не поддерживается установка строки для EXTENSIONS в Scrapy (на самом деле, большинство настроек, которые принимают значения словаря, не поддерживают его, как правило, потому что они могут принимать другие типы значений, поэтому приведение strings в dict может привести к чему-то непреднамеренному).

В коде Scrapy произошли некоторые изменения, связанные с настройками, поэтому фактическая проблема скрыта, но это так и должно быть. Помещение настроек только в файл настроек вашего проекта settings.py должен исправить вашу проблему.

Другие вопросы по тегам