Вилучення даних і ресурсів з HTML

Aspose.HTML for Java завантажує HTML із файлу, URL, рядка або потоку в HTMLDocument. Застосунки Java можуть перевіряти DOM, вибирати елементи, читати текст і атрибути, перетворювати відносні URL на абсолютні та зберігати потрібні значення або пов’язані ресурси.

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


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

Відкрийте приклад для потрібного типу вмісту або ресурсу.

Вилучити зображення із сайту

Знайдіть елементи зображень, перетворіть відносні URL джерел на абсолютні та збережіть пов’язані файли.

Вилучити SVG із сайту

Збережіть вбудовану розмітку SVG і завантажте зовнішні ресурси SVG, на які посилається HTML-сторінка.

Завантажити файл за URL

Надішліть запит за відомою URL-адресою ресурсу, перевірте відповідь і запишіть отримані байти в локальний файл.


Вилучення посилань з HTML у Java

Приклад завантажує HTML-сторінку, читає атрибут href кожного посилання, перетворює відносні посилання на абсолютні URL щодо адреси документа та записує унікальні 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 за допомогою класу Url і базового URI документа.
  5. Залиште HTTP- та HTTPS-посилання, видаліть дублікати й збережіть колекцію в текстовому файлі.

Пошук HTML-даних за допомогою DOM, CSS-селекторів або XPath

Виберіть метод, що відповідає структурі вихідного документа:

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

Приклади DOM, CSS-селекторів і XPath наведено в статті HTML Navigation . Приклади роботи з ресурсами дивіться в документації Data Extraction .


Поширені запитання про вилучення даних з HTML

1. Чи може Aspose.HTML for Java вилучити окремі дані, не зберігаючи всю сторінку?

Так. Завантажте джерело в HTMLDocument, виберіть лише потрібні вузли та збережіть текст, атрибути або пов’язані ресурси. Застосунку не потрібно зберігати повну копію сторінки.

2. Як вилучити лише певні HTML-елементи в Java?

Використовуйте getElementsByTagName() для відомого тегу, querySelector() або querySelectorAll() для збігів із CSS-селекторами чи XPath, якщо вибір залежить від ієрархії документа, атрибутів або текстових умов.

3. Чи може Aspose.HTML for Java вилучати рядки та клітинки з HTML-таблиць?

Так. Виберіть елементи 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

Перейдіть до спеціалізованих посібників Java зі створення, конвертування, об’єднання та обробки HTML-документів.