CoderCastrov logo
CoderCastrov
Парсер

Парсинг HTML в Java с помощью Jsoup

Парсинг HTML в Java с помощью Jsoup
просмотров
3 мин чтение
#Парсер

В этой статье мы рассмотрим некоторые примеры базового использования JSoup для парсинга и манипулирования HTML-документами.

JSoup - это библиотека Java, которая часто используется для парсинга веб-страниц, разбора HTML и манипулирования HTML-данными. JSoup предоставляет простой и гибкий API для работы с HTML-документами, что позволяет разработчикам извлекать информацию из веб-страниц и автоматизировать задачи, связанные с парсингом HTML.

В этой статье мы рассмотрим основное использование JSoup с примерами, чтобы помочь вам начать работу.

Установка JSoup

JSoup можно легко установить, добавив следующую зависимость в ваш проект Maven или Gradle:

Maven

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.14.3</version>
</dependency>

Gradle

implementation 'org.jsoup:jsoup:1.14.3'

Парсинг HTML с помощью JSoup

После установки JSoup в вашем проекте вы можете начать использовать его для парсинга HTML-документов. Вот простой пример, который показывает, как загрузить HTML-файл и извлечь из него некоторую информацию:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.File;
import java.io.IOException;
public class Main {
    public static void main(String[] args) throws IOException {
        File input = new File("input.html");
        Document doc = Jsoup.parse(input, "UTF-8", "");
        Element title = doc.select("title").first();
        System.out.println("Title: " + title.text());
        Elements links = doc.select("a[href]");
        for (Element link : links) {
            System.out.println("Link: " + link.attr("href"));
            System.out.println("Text: " + link.text());
        }
    }
}

В этом примере мы сначала загружаем HTML-файл с помощью Jsoup.parse(). Затем метод select() используется для извлечения заголовка и всех ссылок из HTML-файла. Метод text() используется для извлечения текстового содержимого элемента заголовка и элементов ссылок соответственно.

Извлечение данных из HTML

JSoup предоставляет мощный API для извлечения данных из HTML. Вот некоторые распространенные случаи использования:

  • Извлечение текстового содержимого

Метод text() может быть использован для извлечения текстового содержимого элемента HTML. Вот пример, который извлекает текстовое содержимое первого элемента параграфа на странице:

Element firstParagraph = doc.select("p").first();
String textContent = firstParagraph.text();
  • Извлечение атрибутов

Метод attr() может быть использован для извлечения значения атрибута из элемента HTML. Вот пример, который извлекает значение атрибута href из элемента ссылки:

Element link = doc.select("a").first();
String href = link.attr("href");
  • Извлечение HTML

Метод html() может быть использован для извлечения HTML-содержимого элемента. Вот пример, который извлекает HTML-содержимое первого элемента div на странице:

Element firstDiv = doc.select("div").first();
String htmlContent = firstDiv.html();

Манипулирование HTML с помощью JSoup

JSoup также может использоваться для изменения HTML-документов. Вот пример, который показывает, как изменить текстовое содержимое элемента:

Element element = doc.select("p").first();
element.text("Новое текстовое содержимое");

В этом примере метод text() используется для установки текстового содержимого первого элемента параграфа на "Новое текстовое содержимое".

Заключение

JSoup - мощная и гибкая библиотека для разбора и изменения HTML-документов. Она предоставляет простой и интуитивно понятный API, который позволяет легко извлекать данные из HTML-страниц и выполнять задачи, такие как парсинг веб-страниц, извлечение данных и автоматизация. С помощью JSoup разработчики могут легко получать доступ к HTML-элементам и атрибутам для извлечения и изменения данных.

Если вас интересует более подробная информация о JSoup, вы можете ознакомиться с официальной документацией, которая предоставляет подробную информацию о возможностях и API библиотеки. Также существует множество онлайн-учебников и примеров, которые могут помочь вам начать работу с JSoup и повысить свои навыки парсинга веб-страниц и автоматизации.