Я пытаюсь создать приложение Django, которое работает как магазин. Элементы собираются со всего Интернета и постоянно обновляют базу данных проекта Django (скажем, каждые несколько дней). Я использую среду Scrapy для выполнения парсинга, и хотя есть экспериментальная функция DjangoItem, Я бы предпочел держаться от него подальше, потому что он нестабилен.
Прямо сейчас я планирую создать XML-файлы просканированных элементов с помощью Scrapy XMLItemExporter
(docs здесь) и используйте их, чтобы loaddata
в проект Django в качестве приспособлений XML (docs здесь). Кажется, это нормально, потому что, если один из двух процессов дает сбой, между ними существует файловый посредник. Модуляризация приложения в целом тоже не кажется плохой идеей.
Некоторые проблемы:
- Эти файлы могут быть слишком большими для чтения в память для
loaddata
Django. - Я трачу на это слишком много времени, когда может быть лучшее или более простое решение, такое как экспорт напрямую в базу данных, которой в данном случае является MySQL.
- Похоже, что никто не писал об этом процессе в Интернете, что странно, учитывая, что Scrapy, на мой взгляд, является отличным фреймворком для подключения к приложению Django.
- Нет точного руководства по созданию фикстур Django вручную в документации Django - похоже, что он больше ориентирован на сброс и перезагрузку фикстур из самого приложения.
Существование экспериментального DjangoItem предполагает, что Scrapy + Django является достаточно популярным выбором, чтобы найти здесь хорошее решение.
Буду очень признателен за любые решения, советы или мудрость по этому поводу.