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

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

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

Некоторые проблемы:

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

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

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

Ответы [ 3 ]

2 голосов
/ 30 июля 2011

Вы можете использовать django orm за пределами django.

stackoverflow.com / вопросы / 2180415 /

stackoverflow.com / вопросы / 4271975 /

1 голос
/ 23 января 2013

Вы можете использовать django-dynamic-scraper для создания и управления скребками Scrapy с легким доступом к моделям Django.До сих пор я не сталкивался с какими-либо проблемами, которые не может решить Scrapy.

Документация Django-dynamic-scraper

1 голос
/ 18 августа 2012

Этот вопрос уже немного устарел, но в настоящее время я также занимаюсь правильной интеграцией Django + Scrapy. Мой рабочий процесс следующий: я настроил Scrapy в качестве команды управления Django, как описано в этом ответе . После этого я просто пишу конвейер Scrapy, который сохраняет очищенный элемент в базу данных Django, используя методы QuerySet Django. Это все. В настоящее время я использую SQLite для базы данных, и она работает как шарм. Может быть, это еще кому-нибудь пригодится.

...