jsoup: Java HTML парсър
Скрапирайте, почиствайте и манипулирайте HTML с jQuery-подобна простота в Java
Какво е jsoup?
jsoup е лека, но мощна Java библиотека, предназначена за работа с реални HTML документи. Тя предоставя интуитивен API за парсване на HTML от URL адреси, файлове или низове, извличане и манипулация на данни чрез обхождане на DOM, CSS селектори и модерни HTML5 методи. Идеална за уеб скрапинг, извличане на данни и почистване на HTML, jsoup обработва неправилно форматиран код по начина, по който го прави браузърът.
За разлика от подходите с regex, jsoup предлага чист обектен модел с методи, вдъхновени от jQuery, опростявайки задачи като изпращане на форми, промяна на атрибути и извличане на текст. Без зависимости и с MIT лиценз, тя е любимата библиотека на Java разработчиците за надеждна HTML обработка.
Ключови предимства на jsoup:
- Работа с реални HTML документи: Парсва неформатиран HTML като браузър
- jQuery-подобен синтаксис: Познати CSS селектори (напр.
doc.select("div.content")
) - Подходяща за скрапинг: Следва пренасочвания, обработва бисквитки и изпраща форми
- Кръс-платформена: Чиста Java без външни зависимости
- Сигурност: Вградена защита срещу XSS и почистване на HTML
Перфектна за извличане на данни, автоматизация на уеб и анализ на съдържание.
Защо да изберете 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:
Пример 1: Парсване на документ от низ
Ако имате HTML в Java низ и искате да го анализирате за да извлечете съдържанието му или да го промените, jsoup може да го направи само с няколко реда код.
Методът parse(String html, String baseUri) преобразува входния HTML в нов Document. Параметърът baseUri помага за преобразуването на относителните URL адреси в абсолютни и трябва да съответства на URL адреса, от който е извлечен документът. Ако това не е приложимо или ако 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 срещу HTMLUnit
Ключови разлики:
- Фокус: jsoup парсва статичен HTML; HTMLUnit симулира браузъри (изпълнение на JavaScript)
- Скорост: jsoup е по-бърз за чист HTML анализ
- API стил: jsoup използва CSS селектори; HTMLUnit имитира Selenium
- Случаи на употреба: jsoup за скрапинг; HTMLUnit за тестване на динамични страници
- Зависимости: jsoup няма; HTMLUnit изисква допълнителни библиотеки
Заключение
jsoup е крайният инструментариум за Java разработчици за работа с HTML. Идеален за:
- Уеб скрапинг: Извличане на данни от всякакъв уебсайт
- Почистване на данни: Саниране и нормализиране на HTML
- Анализ на съдържание: Парсване на RSS емисии или уеб архиви
- Тестване: Проверка на HTML структура в приложения
С MIT лиценз и интуитивен API, jsoup е топ изборът за обработка на HTML в Java.
Подобни Продукти
- Apache POI XWPF | Java API с отворен код за създаване и модифициране на DOCX файлове
- DocX | .NET API с отворен код за създаване и модифициране на DOCX файлове
- Docx4J | Java API с отворен код за създаване и модифициране на DOC и DOCX файлове
- ExcelDataReader | .NET API с отворен код за четене на XLS, XLSX, CSV и електронни таблици документи
- FileFormat.Cells | Сертирайте и актуализирайте Excel файлове с C# .NET