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

Ответ 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.