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