Библиотеки Java Web Crawler
Я хотел создать веб-искатель на основе Java для эксперимента. Я слышал, что создание веб-сканера в Java было способом, если это ваш первый раз. Однако у меня есть два важных вопроса.
-
Как моя программа будет "посещать" или "подключаться" к веб-страницам? Пожалуйста, дайте краткое объяснение. (Я понимаю основы слоев абстракции от аппаратного обеспечения до программного обеспечения, здесь меня интересуют абстракции Java)
-
Какие библиотеки я должен использовать? Я бы предположил, что мне нужна библиотека для подключения к веб-страницам, библиотека для протокола HTTP/HTTPS и библиотека для разбора HTML.
Ответы
Ответ 1
Это как ваша программа "посещает" или "подключается" к веб-страницам.
URL url;
InputStream is = null;
DataInputStream dis;
String line;
try {
url = new URL("http://stackoverflow.com/");
is = url.openStream(); // throws an IOException
dis = new DataInputStream(new BufferedInputStream(is));
while ((line = dis.readLine()) != null) {
System.out.println(line);
}
} catch (MalformedURLException mue) {
mue.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
try {
is.close();
} catch (IOException ioe) {
// nothing to see here
}
}
Это загрузит источник html-страницы.
Для разбора HTML см. this
Также посмотрите jSpider и jsoup
Ответ 2
Crawler4j - лучшее решение для вас,
Crawler4j - это искатель Java с открытым исходным кодом, который предоставляет простой интерфейс для обхода Интернета. Вы можете настроить многопоточный веб-искатель за 5 минут!
Также visit. для получения дополнительных инструментов для веб-поиска на основе java и краткого объяснения для каждого.
Ответ 3
В настоящее время имеется множество парсеров HTML на основе Java, которые поддерживают просмотр и анализ страниц HTML.
Вот полный список парсера HTML с базовым сопоставлением.
Ответ 4
Для анализа содержимого я использую Apache Tika.
Ответ 5
Я бы предпочел crawler4j. Crawler4j - это искатель Java с открытым исходным кодом, который предоставляет простой интерфейс для сканирования в Интернете. Вы можете настроить многопоточный веб-искатель за несколько часов.
Ответ 6
Я рекомендую вам использовать библиотеку HttpClient. Вы можете найти примеры здесь.
Ответ 7
Вы можете исследовать droid или apache nutch, чтобы почувствовать jraw-based искатель
Ответ 8
Хотя в основном используется для веб-приложений Unit Testing, HttpUnit обходит веб-сайт, нажимает ссылки, анализирует таблицы и элементы формы и предоставляет метаданные обо всех страницах. Я использую его для веб-сканирования, а не только для модульного тестирования. - http://httpunit.sourceforge.net/
Ответ 9
Я думаю, что jsoup лучше других, jsoup работает на Java 1.5 и выше, Scala, Android, OSGi и Google App Engine.
Ответ 10
Вот список доступных искателей:
https://java-source.net/open-source/crawlers
Но я предлагаю использовать Apache Nutch