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.

Подібні Продукти

 Ukrainian