Хорошая новость в том, что вы можете сделать это в Perl. Плохая новость в том, что это будет сложно. Так же, как это было бы на любом языке.
Начните с чтения Изучение Perl .
Далее вам нужно собрать свой код паука.
Начните с простого скрипта, который читает по одной странице за раз.
Существует множество модулей для получения веб-страниц. Какой из них использовать, зависит от ваших потребностей. Это становится еще более сложным, если вам нужно очистить сгенерированную Javascript страницу. Начните с LWP :: Simple или WWW :: Mechanize. Вы можете расширить оттуда.
Есть также много модулей для разбора HTML. HTML :: Treebuilder - мощный модуль, который очень хорошо сработал для меня.
Как только вы сможете надежно загрузить и проанализировать одну страницу, вам нужно будет добавить логику паутинга. Затем вы должны решить, как вы хотите пройти сайт - в ширину или глубину в первую очередь? Собираетесь ли вы пойти с рекурсивным алгоритмом? Или, возможно, процедурный подход?
Если вы сканируете много страниц, которые нужно отсканировать, вам может потребоваться создать контроллер для управления несколькими пауками. Вы можете использовать Coro, AnyEvent, POE, потоки или стратегию на основе fork
для управления своими работниками. Что вы выберете, будет зависеть от ваших потребностей.
Вы можете использовать модуль DBI с соответствующим драйвером (например, DBD :: MySQL) для вставки данных в вашу базу данных.
Все, что вам нужно сделать сейчас, это создать ваше веб-приложение. Существует множество наборов инструментов различного уровня сложности и мощности. CGI :: Application и Catalyst - две популярные библиотеки. HTML :: Mason и Squatting и другие варианты.
Все перечисленные модули доступны на CPAN. При правильном использовании CPAN сэкономит вам массу работы. Для многих задач проблема заключается в слишком большом количестве вариантов, а не в их отсутствии.
Книга, конечно, доступна везде, где продаются книги.