Extraer datos y recursos de HTML
Aspose.HTML for Java
carga HTML desde un archivo, una URL, una cadena o un flujo en un HTMLDocument. Las aplicaciones Java pueden examinar el DOM, seleccionar elementos, leer texto y atributos, resolver URL relativas y guardar los valores necesarios o los recursos enlazados.
Utilice métodos del DOM, selectores CSS o expresiones XPath cuando la información necesaria forme parte de la estructura del documento. Si un elemento apunta a una imagen, un archivo SVG, una hoja de estilos u otro recurso, utilice la URL resuelta y el servicio de red para descargar sus bytes. De este modo, el análisis de HTML queda separado de la recuperación de recursos y la lógica de extracción se centra en los datos que necesita la aplicación.
Elegir una tarea de extracción de datos en Java
Seleccione un ejemplo específico para el tipo de contenido o recurso que necesita obtener.
Extraer imágenes de sitios web
Encontrar elementos de imagen, resolver URL de origen relativas y guardar los archivos de imagen referenciados.
Guardar marcado SVG integrado y descargar recursos SVG externos referenciados por una página HTML.
Descargar archivo desde una URL
Solicitar una URL de recurso conocida, comprobar la respuesta y escribir los bytes recibidos en un archivo local.
Extraer enlaces de HTML en Java
El ejemplo carga una página HTML, lee el atributo href de cada enlace, resuelve las referencias relativas con respecto a la URL del documento y escribe enlaces HTTP y HTTPS únicos en output/links.txt. El mismo patrón de selección puede adaptarse para extraer texto, metadatos, valores de formularios o atributos de recursos.
Extraer enlaces de HTML en 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);
}
Pasos para extraer enlaces de HTML
- Cargue el origen con la clase
HTMLDocument. - Seleccione los elementos de enlace con
getElementsByTagName("a"). - Lea cada atributo
hrefe ignore los valores vacíos. - Resuelva las referencias relativas con la clase
Urly la URI base del documento. - Conserve los enlaces HTTP y HTTPS, elimine los duplicados y guarde la colección en un archivo de texto.
Buscar datos HTML con DOM, selectores CSS o XPath
Elija el método de selección que mejor se adapte a la estructura del documento de origen:
- Colecciones DOM – utilice
getElementsByTagName()cuando necesite todos los elementos de una etiqueta conocida. - Selectores CSS – utilice
querySelector()para la primera coincidencia oquerySelectorAll()para todos los elementos que coincidan con un selector CSS. - XPath – utilice expresiones XPath cuando la selección dependa de la jerarquía, los atributos o condiciones de texto difíciles de expresar con un selector CSS.
- URL de recursos – lea atributos como
srcohref, resuélvalos con respecto a la URI base del documento y solicite únicamente los archivos que necesita la aplicación.
Consulte Navegación HTML para ver ejemplos de DOM, selectores CSS y XPath, o abra la documentación de Extracción de datos para consultar ejemplos centrados en recursos.
Preguntas frecuentes sobre la extracción de datos HTML
1. ¿Puede Aspose.HTML for Java extraer datos seleccionados sin guardar la página web completa?
Sí. Cargue el origen en un HTMLDocument, seleccione únicamente los nodos necesarios y guarde su texto, sus atributos o los recursos referenciados. La aplicación no necesita guardar una copia completa de la página.
2. ¿Cómo se extraen solo determinados elementos HTML en Java?
Utilice getElementsByTagName() para una etiqueta conocida, querySelector() o querySelectorAll() para búsquedas mediante selectores CSS, o XPath cuando la selección dependa de la jerarquía del documento, los atributos o condiciones de texto.
3. ¿Puede Aspose.HTML for Java extraer filas y celdas de tablas HTML?
Sí. Seleccione los elementos table, tr, th y td mediante el DOM y asigne después su texto y sus atributos a la estructura de datos que necesite la aplicación Java.
4. ¿Aspose.HTML for Java es gratuito para extraer datos?
Aspose.HTML for Java es una biblioteca comercial. Puede descargar una versión de evaluación y solicitar una licencia temporal para probar la extracción de datos sin las limitaciones del modo de evaluación antes de comprarla.
Instalar Aspose.HTML for Java
Añada Aspose.HTML for Java desde el repositorio oficial de Aspose. Sustituya ASPOSE_HTML_VERSION por un número de versión exacto de la página de
versiones de Aspose.HTML for Java
y, a continuación, vuelva a cargar o compilar el proyecto para resolver la dependencia.
Añada el repositorio y la dependencia al proyecto 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>Añada el repositorio y la dependencia al proyecto Gradle:
Gradle – build.gradle
repositories {
maven {
url = uri('https://releases.aspose.com/java/repo/')
}
}
dependencies {
implementation 'com.aspose:aspose-html:ASPOSE_HTML_VERSION'
}Utilice una versión del JDK compatible con la versión seleccionada. Consulte Instalación – Aspose.HTML for Java para obtener instrucciones sobre la instalación manual del archivo JAR, Kotlin DSL, las actualizaciones y la solución de problemas de dependencias.
Otras tareas con Aspose.HTML for Java
Continúe con guías específicas para crear, convertir, combinar y procesar documentos HTML en Java.