jsoup: HTML-парсер для Java

Собирайте, очищайте и манипулируйте HTML с jQuery-подобной простотой в Java

Что такое jsoup?

jsoup - это легковесная, но мощная Java-библиотека, разработанная для работы с реальным HTML. Она предоставляет удобный API для парсинга HTML из URL, файлов или строк, извлечения и манипуляции данными с использованием обхода DOM, CSS-селекторов и современных методов HTML5. Идеально подходит для веб-скрапинга, извлечения данных и очистки HTML, jsoup корректно обрабатывает некорректную разметку - точно так же, как браузер.

В отличие от подходов с использованием чистых регулярных выражений, jsoup предлагает чистую объектную модель с методами, вдохновленными jQuery, упрощая такие задачи, как отправка форм, модификация атрибутов и извлечение текста. Не имеет зависимостей и распространяется под лицензией MIT, что делает её любимым инструментом Java-разработчиков для надежной обработки HTML.

Ключевые преимущества jsoup:

  • Обработка реального HTML: Парсит "грязный" HTML как браузер
  • jQuery-подобный синтаксис: Знакомые CSS-селекторы (напр. doc.select("div.content"))
  • Удобство для скрапинга: Следует за редиректами, работает с куками и отправляет формы
  • Кроссплатформенность: Чистая Java без нативных зависимостей
  • Безопасность: Встроенная защита от XSS и очистка HTML

Идеально подходит для сбора данных, веб-автоматизации и анализа контента.

GitHub

Статистика GitHub

Имя:
Язык:
Звезды:
Вилки:
Лицензия:
Репозиторий последний раз обновлялся на

Почему стоит выбрать jsoup?

  • Простота: Интуитивный API с поддержкой CSS-селекторов
  • Надежность: Активно поддерживается с 2009 года
  • Производительность: Оптимизирован для потоковой обработки и больших документов
  • Гибкость: Работает с фрагментами, файлами или прямыми URL
  • Чистый вывод: Красивое форматирование и переформатирование HTML

Установка

Добавьте jsoup через Maven или Gradle:

Maven



    org.jsoup
    jsoup
    1.17.2


Gradle


implementation 'org.jsoup:jsoup:1.17.2'

Системные требования: Java 8+

Примеры кода

Практические примеры использования jsoup:

Парсинг HTML с jsoup

Пример 1: Парсинг документа из строки

Если у вас есть HTML в строке Java и вы хотите распарсить его для получения содержимого или изменения, jsoup может сделать это всего несколькими строками кода.

Метод parse(String html, String baseUri) преобразует входной HTML в новый Документ. Параметр baseUri помогает преобразовывать относительные URL в абсолютные и должен соответствовать URL, с которого был получен документ. Если это не важно или если HTML содержит элемент <base>, вы можете использовать более простой метод parse(String html).

Пример 2: Использование CSS-селекторов для поиска элементов

Вы хотите найти или изменить элементы с помощью CSS-селекторов. Распарсите и измените HTML-строку напрямую:

Пример 3: Изменение HTML элемента

Вам нужно изменить HTML элемента. Используйте методы-сеттеры HTML в Element, как показано в следующем примере кода.

Продвинутые возможности

jsoup поддерживает профессиональную обработку HTML:

  • Обработка форм: Отправка POST-данных:

    Отправка формы

    
        Connection.Response res = Jsoup.connect("https://example.com/login")
            .data("username", "user", "password", "pass")
            .method(Connection.Method.POST)
            .execute();
        Document dashboard = res.parse();
        
    
  • Поддержка прокси: Скрапинг через прокси:

    Настройка прокси

    
        Document doc = Jsoup.connect("https://target.com")
            .proxy("127.0.0.1", 8080)
            .get();
        
    
  • Манипуляции с DOM: Изменение структуры HTML:

    Изменения DOM

    
        doc.select("div.ads").remove(); // Удалить все рекламные блоки
        doc.select("h1").attr("class", "header"); // Добавить CSS-класс
        
    

jsoup vs HTMLUnit

Ключевые различия:

  • Фокус: jsoup парсит статический HTML; HTMLUnit эмулирует браузер (выполняет JavaScript)
  • Скорость: jsoup быстрее для чистого парсинга HTML
  • Стиль API: jsoup использует CSS-селекторы; HTMLUnit имитирует Selenium
  • Сценарии использования: jsoup для скрапинга; HTMLUnit для тестирования динамических страниц
  • Зависимости: jsoup не имеет; HTMLUnit требует дополнительных библиотек

Заключение

jsoup - это идеальный набор инструментов для работы с HTML в Java. Подходит для:

  • Веб-скрапинга: Извлечения данных с любых сайтов
  • Очистки данных: Санации и нормализации HTML
  • Анализа контента: Парсинга RSS-лент или веб-архивов
  • Тестирования: Проверки HTML-структуры в приложениях

С лицензией MIT и интуитивным API, jsoup - лучший выбор для Java-обработки HTML.

Похожие Продукты

 Русский