Интерфейсный гусеничный механизм с интерфейсом Django - PullRequest
2 голосов
/ 09 июня 2009

Я пытаюсь сделать три вещи.

Один: сканировать и архивировать, по крайней мере, ежедневно, заранее определенный набор сайтов.

Два: запускать ночные пакетные скрипты Python на этих данных (текстовая классификация).

Три: предоставить пользователям интерфейс на основе Django, чтобы они могли осуществлять поиск в просканированных данных.

Я играл с Apache Nutch / Lucene, но заставить его хорошо играть с Django кажется слишком сложным, когда я мог просто использовать другой гусеничный движок.

Вопрос 950790 предполагает, что я мог бы просто написать сканер в самом Django, но я не уверен, как это сделать.

В основном - есть ли какие-либо указатели для написания сканера в Django или существующего сканера python, который я мог бы адаптировать? Или я должен включить «превращение в Django-дружественные вещи» во втором шаге и написать немного кода? Или, наконец, я должен отказаться от Джанго вообще? Мне действительно нужно что-то, что может быстро искать с внешнего интерфейса.

Ответы [ 3 ]

3 голосов
/ 09 июня 2009

Если вы вставите каталоги приложений вашего проекта django в sys.path, вы можете написать стандартные скрипты Python, которые используют функциональность Django ORM. У нас есть каталог / admin /, который содержит сценарии для выполнения различных задач - в верхней части каждого сценария находится блок, который выглядит следующим образом:

sys.path.insert(0,os.path.abspath('../my_django_project'))
sys.path.insert(0,os.path.abspath('../'))
sys.path.insert(0,os.path.abspath('../../'))
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

Тогда вам просто нужно использовать инструмент для сканирования в Интернете и использовать API базы данных Django для хранения данных.

2 голосов
/ 09 июня 2009

Вы пишете свой собственный сканер, используя urllib2 для получения страниц и Beautiful Soup для анализа HTML в поисках содержимого.

Вот пример чтения страницы:

http://docs.python.org/library/urllib2.html#examples

Вот пример анализа страницы:

http://www.crummy.com/software/BeautifulSoup/documentation.html#Parsing HTML

1 голос
/ 09 июня 2009

Если вы не хотите писать сканер с помощью Django ORM (или у вас уже есть рабочий сканер), вы можете совместно использовать базу данных между сканером и внешним интерфейсом Django-Powred.

Чтобы иметь возможность искать (и редактировать) существующую базу данных с помощью администратора Django, вы должны создавать модели Django. Простой способ для этого описан здесь:

http://docs.djangoproject.com/en/dev/howto/legacy-databases/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...