2010-02-11 1 views
0

Привет, мне нужно создать сайт, похожий на Indeed.com и многие другие, который отслеживает ряд рекламных сайтов и анализирует HTML, чтобы показывать рекламу на моем собственном сайте.Лучшая стратегия создания пользовательской пакетной поисковой системы?

Я знаю, что каждому исходному сайту нужна конкретная стратегия. Это не проблема. Меня беспокоит то, что я хочу сканировать сайты ежечасно в пакетном режиме.

Есть ли более подходящая стратегия для достижения этой цели? Мне сказали, что Perl - очень сильный язык сценариев для пакетной обработки. Это так? Как начать?

Бест,

+0

Google предоставил мне следующее: http://www.cs.utk.edu/cs594ipm/perl/crawltut.html – Natrium

ответ

2

Хорошая новость заключается в том, что вы можете сделать это в Perl. Плохая новость заключается в том, что это будет сложно. Так же, как это было бы на любом языке.

Сначала читайте Learning Perl.

Далее вам нужно собрать свой код для паука.

Начните с простого одиночного скрипта, который читает одну страницу за раз.

Существует множество модулей для получения веб-страниц. Что использовать зависит от ваших потребностей. Это становится еще более сложным, если вам нужно очистить страницу, созданную Javascript. Начните с LWP :: Simple или WWW :: Mechanize. Вы можете расширить оттуда.

Существует также множество модулей для разбора HTML. HTML :: Treebuilder - это мощный модуль, который работал очень хорошо для меня.

После того, как вы сможете надежно загрузить и проанализировать одну страницу, вам нужно будет добавить логику пауков. Затем вам нужно решить, как вы хотите сначала пересечь сайт - ширину или глубину? Вы собираетесь пойти с рекурсивным алогоризмом? Или, возможно, процедурный подход?

Если вы сканируете много страниц, которые вам нужно сканировать, вам может потребоваться создать контроллер для управления несколькими пауками. Вы можете использовать Coro, AnyEvent, POE, темы или стратегию, основанную на fork, для управления вашими работниками. То, что вы выберете, будет зависеть от ваших потребностей.

Вы можете использовать модуль DBI с соответствующим драйвером (например, DBD :: MySQL) для вставки данных в свою базу данных.

Все, что вам нужно сделать, это сгенерировать ваше веб-приложение. Существует множество наборов инструментов различного уровня сложности и мощности. CGI :: Application and Catalyst - две популярные библиотеки. HTML :: Mason и Squatting - некоторые другие варианты.

Все перечисленные модули доступны в CPAN. Используемый надлежащим образом, CPAN сэкономит вам много работы. Для многих задач проблема - слишком много вариантов, а не их отсутствие.

Книга, конечно же, доступна в любом месте, где продаются книги.

 Смежные вопросы

  • Нет связанных вопросов^_^