Библиотека сканера Java - рекурсивная загрузка HTTP-поддерева с анализатором списка каталогов - PullRequest
4 голосов
/ 21 августа 2011

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

Это решение несколько ограничивает, и я хочу поддержать также второй вариант - копировать поддерево через http .

Библиотека должна сделать что-то вроде wget --recursive, которая анализирует каталогсписок и использовать его для обхода дерева.

Я не смог найти ни одной библиотеки Java, делающей это.

Я могу реализовать такую ​​функцию самостоятельно (с помощью NekoHTML или чего-то подобного), но мне не нравится изобретать велосипед.

Существует ли такая библиотека , котораяЯ могу легко использовать в своем приложении?

В идеале:

  • опубликовано в Центральном репозитории Maven, поскольку я использую Maven для сборок
  • скак можно меньше зависимостей от других библиотек
  • не требуется поддержка исключений для роботов - будет работать только на ограниченном наборе временных серверов

Спасибо.

Примечание: пожалуйста, оставляйте ссылки на домашние страницы библиотек, которые вы лично использовали.

1 Ответ

2 голосов
/ 26 августа 2014

Norconex HTTP Collector пересекает веб-сайты, как дерево, по одному или нескольким начальным URL-адресам. Его можно использовать как библиотеку Java в вашем приложении или как приложение командной строки. Вы можете решить, что делать с каждым сканируемым документом. Будучи полноценным веб-сканером, он, вероятно, делает больше, чем то, что вам нужно, но вы можете настроить его в соответствии со своими потребностями.

Например, по умолчанию он будет извлекать текст, найденный в ваших документах, и он позволит вам решить, что делать с этим текстом, подключив «Committer» (т. Е. Где «зафиксировать» извлеченный контент). В вашем случае я думаю, что вы хотите только необработанные документы и игнорировать часть преобразования текста. Вы можете сделать это, подключив собственный обработчик документов, а затем «отфильтровав» документы, чтобы они перестали обрабатываться, как только вы справитесь с ними по-своему.

Проект с открытым исходным кодом, размещен на Github и полностью "mavenized". Он поддерживает robots.txt, но это можно отключить, если хотите. Единственным недостатком для вас является наличие нескольких зависимостей, но, поскольку вы используете Maven, они должны решаться автоматически без усилий. На сайте продукта вы найдете Информация о репозитории Maven .

...