Извлечение данных и ресурсов из HTML

Aspose.HTML for Java загружает HTML из файла, URL, строки или потока в объект HTMLDocument. Java-приложение может анализировать DOM, выбирать элементы, читать текст и атрибуты, разрешать относительные URL и сохранять необходимые значения или связанные ресурсы.

Используйте методы DOM, CSS-селекторы или XPath, если нужная информация находится в структуре документа. Когда элемент ссылается на изображение, SVG-файл, таблицу стилей или другой ресурс, разрешите его URL и скачайте данные через сетевой сервис. Такой подход отделяет анализ HTML от загрузки ресурсов и позволяет извлекать только те данные, которые нужны приложению.


Выберите задачу извлечения данных

Выберите пример для нужного типа содержимого или ресурса.

Извлечение изображений

Найдите элементы изображений, разрешите относительные URL и сохраните исходные файлы.

Извлечение SVG

Сохраните встроенную SVG-разметку и скачайте внешние SVG-ресурсы HTML-страницы.

Загрузка файла по URL

Отправьте запрос по известному URL, проверьте ответ и запишите полученные данные в локальный файл.


Извлечение ссылок из HTML на Java

Пример загружает HTML-страницу, читает атрибут href каждой ссылки, преобразует относительные адреса в абсолютные и записывает уникальные HTTP- и HTTPS-ссылки в файл output/links.txt. Этот же принцип выбора элементов можно применять к тексту, метаданным, значениям форм и атрибутам ресурсов.

Извлечение ссылок из HTML на Java

Path outputPath = Paths.get("output", "links.txt");
Files.createDirectories(outputPath.getParent());

try (HTMLDocument document = new HTMLDocument("https://docs.aspose.com/html/java/")) {
    HTMLCollection anchors = document.getElementsByTagName("a");
    Set<String> links = new LinkedHashSet<>();
    Iterator<Element> iterator = anchors.iterator();

    while (iterator.hasNext()) {
        Element anchor = iterator.next();
        String href = anchor.getAttribute("href");
        if (href.isEmpty()) {
            continue;
        }

        Url linkUrl = new Url(href, document.getBaseURI());
        String protocol = linkUrl.getProtocol();
        if ("http:".equals(protocol) || "https:".equals(protocol)) {
            links.add(linkUrl.getHref());
        }
    }

    Files.write(outputPath, links, StandardCharsets.UTF_8);
}

Как извлечь ссылки из HTML

  1. Загрузите исходный документ с помощью класса HTMLDocument .
  2. Выберите элементы ссылок методом getElementsByTagName("a").
  3. Прочитайте атрибут href каждого элемента и пропустите пустые значения.
  4. Разрешите относительные ссылки с помощью класса Url и базового URI документа.
  5. Оставьте HTTP- и HTTPS-ссылки, удалите дубликаты и сохраните коллекцию в текстовый файл.

Поиск данных с помощью DOM, CSS-селекторов и XPath

Выберите способ поиска с учётом структуры исходного документа:

  • Коллекции DOM – используйте getElementsByTagName(), когда нужны все элементы с определённым тегом.
  • CSS-селекторы – используйте querySelector() для первого совпадения или querySelectorAll() для всех элементов, соответствующих CSS-селектору.
  • XPath – используйте выражения XPath, когда выбор зависит от иерархии документа, атрибутов или текста и его неудобно описывать CSS-селектором.
  • URL ресурсов – прочитайте атрибуты src или href, разрешите их относительно базового URI документа и запросите только необходимые приложению файлы.

Примеры работы с DOM, CSS-селекторами и XPath приведены в статье HTML-навигация . Примеры сохранения связанных ресурсов собраны в разделе Извлечение данных .


Часто задаваемые вопросы

1. Можно ли извлекать только нужные данные без сохранения всей веб-страницы?

Да. Загрузите исходный документ в HTMLDocument, выберите только нужные узлы и сохраните их текст, атрибуты или связанные ресурсы. Полную копию страницы сохранять не требуется.

2. Как извлечь только определённые HTML-элементы на Java?

Используйте getElementsByTagName() для поиска по имени тега, querySelector() или querySelectorAll() для CSS-селекторов и XPath, если выбор зависит от иерархии документа, атрибутов или текстовых условий.

3. Можно ли извлечь строки и ячейки HTML-таблицы с помощью Aspose.HTML for Java?

Да. Выберите элементы table, tr, th и td через DOM, затем перенесите их текст и атрибуты в структуру данных Java-приложения.

4. Можно ли бесплатно использовать Aspose.HTML for Java для извлечения данных?

Aspose.HTML for Java является коммерческой библиотекой. Перед покупкой можно загрузить ознакомительную версию и запросить временную лицензию для тестирования без ограничений ознакомительного режима.


Установка Aspose.HTML for Java

Добавьте Aspose.HTML for Java из официального репозитория Aspose. Замените ASPOSE_HTML_VERSION точным номером версии со страницы выпусков Aspose.HTML for Java , затем перезагрузите или пересоберите проект, чтобы система зависимостей загрузила библиотеку.

Добавьте репозиторий и зависимость в проект Maven:

Maven – pom.xml

<repositories>
    <repository>
        <id>AsposeJavaAPI</id>
        <url>https://releases.aspose.com/java/repo/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-html</artifactId>
        <version>ASPOSE_HTML_VERSION</version>
    </dependency>
</dependencies>

Добавьте репозиторий и зависимость в проект Gradle:

Gradle – build.gradle

repositories {
    maven {
        url = uri('https://releases.aspose.com/java/repo/')
    }
}
dependencies {
    implementation 'com.aspose:aspose-html:ASPOSE_HTML_VERSION'
}

Используйте версию JDK, совместимую с выбранным выпуском библиотеки. Инструкции по установке JAR вручную, настройке Kotlin DSL, обновлению и устранению проблем с зависимостями приведены в руководстве Установка Aspose.HTML for Java .

Другие задачи Aspose.HTML for Java

Перейдите к руководствам по созданию, преобразованию, объединению и обработке HTML-документов на Java.