Вилучення даних і ресурсів з HTML
Aspose.HTML for Java
завантажує HTML із файлу, URL, рядка або потоку в HTMLDocument. Застосунки Java можуть перевіряти DOM, вибирати елементи, читати текст і атрибути, перетворювати відносні URL на абсолютні та зберігати потрібні значення або пов’язані ресурси.
Використовуйте методи DOM, CSS-селектори або вирази XPath, якщо потрібні відомості є частиною структури документа. Якщо елемент посилається на зображення, таблицю стилів, файл SVG або інший ресурс, скористайтеся абсолютним URL і мережевою службою, щоб завантажити його байти. Такий підхід відокремлює аналіз HTML від отримання ресурсів і дає змогу зосередити логіку вилучення на даних, потрібних застосунку.
Виберіть завдання з вилучення даних у Java
Відкрийте приклад для потрібного типу вмісту або ресурсу.
Знайдіть елементи зображень, перетворіть відносні URL джерел на абсолютні та збережіть пов’язані файли.
Збережіть вбудовану розмітку SVG і завантажте зовнішні ресурси SVG, на які посилається HTML-сторінка.
Надішліть запит за відомою 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
- Завантажте джерело за допомогою класу
HTMLDocument. - Виберіть елементи посилань за допомогою
getElementsByTagName("a"). - Прочитайте кожен атрибут
hrefі пропустіть порожні значення. - Перетворіть відносні посилання на абсолютні URL за допомогою класу
Urlі базового URI документа. - Залиште 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-документів.