Как лучше всего экспортировать информацию из поискового робота Scrapy в базу данных приложения Django?

Я пытаюсь создать приложение Django, которое работает как магазин. Элементы собираются со всего Интернета и постоянно обновляют базу данных проекта Django (скажем, каждые несколько дней). Я использую среду Scrapy для выполнения парсинга, и хотя есть экспериментальная функция DjangoItem , я бы предпочел держаться подальше от нее, потому что она нестабильна.

Сейчас я планирую создать XML-файлы сканировал элементы с помощью Scrapy XMLItemExporter (документы здесь ) и использовали их для загрузки данных в проект Django как фикстур XML (документы здесь ) . Кажется, это нормально, потому что, если один из двух процессов ошибается, между ними существует файловый посредник. Модуляризация приложения в целом тоже не кажется плохой идеей.

Некоторые опасения:

  • Эти файлы могут быть слишком большими для чтения в память для loaddata Django.
  • Я трачу на это слишком много времени, когда может быть что-то лучше или более простое решение, такое как экспорт напрямую в базу данных, которой в данном случае является MySQL.
  • Похоже, что никто не писал об этом процессе в Интернете, что странно, учитывая, что Scrapy, на мой взгляд, является отличным фреймворком для подключения к приложению Django.
  • Нет окончательного руководства по созданию фикстур Django вручную в документации Django - похоже, что он больше ориентирован на сброс и перезагрузку фикстур из самого приложения.

Существование экспериментального DjangoItem предполагает, что Scrapy + Django - достаточно популярный выбор, чтобы найти здесь хорошее решение.

Я был бы очень признателен за любые решения, советы или мудрость по этому поводу.

6
задан emish 29 July 2011 в 20:58
поделиться