Привет, ребята, время от времени у меня возникает необходимость автоматизировать задачи сбора данных с веб-сайтов. Иногда мне нужно несколько URL-адресов из каталога, иногда мне нужна карта сайта XML (да, я знаю, что для этого есть много программного обеспечения и онлайн-сервисов).
В любом случае, как и в ответ на мой предыдущий вопрос, я написал небольшой веб-сканер, который может посещать веб-сайты.
Базовый класс сканера для простого и быстрого взаимодействия с одним веб-сайтом.
Переопределить «doAction (String URL, String content)» для дальнейшей обработки содержимого (например, сохранить его, проанализировать).
Концепция допускает многопоточность гусениц. Все экземпляры классов совместно используют обработанные и помещенные в очередь списки ссылок.
Вместо отслеживания обработанных ссылок и ссылок в очереди внутри объекта может быть установлено соединение JDBC для хранения ссылок в базе данных.
В настоящее время ограничено одним веб-сайтом за раз, однако его можно расширить, добавив в него стек externalLinks и добавив его соответствующим образом.
JCrawler предназначен для быстрой генерации карт сайта XML или анализа веб-сайтов для получения необходимой информации. Это легкий.
Это хороший / приличный способ написания сканера при условии указанных выше ограничений? Любой вклад очень поможет:)
http://pastebin.com/VtgC4qVE - Main.java
http://pastebin.com/gF4sLHEW - JCrawler.java
http://pastebin.com/VJ1grArt - HTMLUtils.java