Webcrawler, отзывы? - PullRequest
       12

Webcrawler, отзывы?

2 голосов
/ 29 мая 2010

Привет, ребята, время от времени у меня возникает необходимость автоматизировать задачи сбора данных с веб-сайтов. Иногда мне нужно несколько 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

Ответы [ 3 ]

5 голосов
/ 30 мая 2010

Ваш сканер, похоже, не уважает robots.txt и использует поддельную строку User-Agent, чтобы показать, что это веб-браузер. Это может привести к юридическим проблемам в будущем. Имейте это в виду.

2 голосов
/ 29 мая 2010

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

Таким образом, он должен следовать шаблону проектирования " Observer ", чтобы в случае обнаружения какого-либо нового обновления по указанному URL-адресу через определенный промежуток времени оно обновлялось или записывалось в файл.

0 голосов
/ 30 мая 2010

Я бы порекомендовал JSpider с открытым исходным кодом в качестве отправной точки для вашего проекта сканера, он охватывает все основные проблемы веб-сканера, включая robots.txt, и имеет схему плагинов, которую вы можете использовать для применения ваших собственных задач на каждую страницу, которую он посещает.

Это краткий и слегка устаревший обзор JSpider. Страницы вокруг этого обзора рассматривают несколько других приложений-пауков Java.

http://www.mksearch.mkdoc.org/research/spiders/j-spider/

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