Análisis de HTML en Java: mejores bibliotecas y ejemplos de código

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Análisis de HTML en Java: resumen de bibliotecas y ejemplos prácticos



El análisis de HTML (extracción de datos de páginas web) es una de las tareas clave en el desarrollo moderno. Java proporciona herramientas potentes para este propósito. En este artículo, analizaremos tres bibliotecas populares: Jsoup, HtmlUnit y Apache Tika. Aprenderá cómo instalarlas, qué problemas resuelven y verá ejemplos de código funcionales.



¿Para qué sirve el análisis de HTML?

El análisis de HTML se utiliza para:

  • Recopilar datos de sitios web (precios, noticias, contactos).
  • Probar aplicaciones web (extraer elementos de la interfaz).
  • Automatizar operaciones rutinarias (rellenar formularios, verificar enlaces).
  • Analizar la estructura SEO de los sitios.


1. Jsoup: el analizador HTML más popular para Java

Jsoup es una biblioteca ligera e intuitiva para trabajar con HTML. Puede cargar páginas, analizarlas y extraer datos mediante selectores CSS y métodos similares a jQuery. Jsoup corrige automáticamente el marcado incorrecto, lo que la hace ideal para analizar sitios web reales.



Instalación (Maven)

<dependency>    <groupId>org.jsoup</groupId>    <artifactId>jsoup</artifactId>    <version>1.17.2</version></dependency>


Ejemplo: extraer los títulos de todas las noticias

Supongamos que necesitamos obtener todos los títulos de artículos de un portal de noticias. Usamos el selector CSS h2.news-title.

import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.select.Elements;

public class JsoupExample { public static void main(String[] args) throws Exception { // Cargamos la página HTML Document doc = Jsoup.connect("https://example.com/news") .userAgent("Mozilla/5.0") .timeout(5000) .get();

// Extraemos todos los elementos h2 con la clase "news-title" Elements titles = doc.select("h2.news-title");

// Mostramos el texto de cada título for (var title : titles) { System.out.println(title.text()); } }}

Características de Jsoup:

  • Funciona sin navegador, solo con solicitudes HTTP.
  • Soporte de selectores CSS (como en jQuery).
  • Posibilidad de manipular el DOM (agregar, eliminar elementos).
  • No puede ejecutar JavaScript.


2. HtmlUnit: análisis con soporte de JavaScript

HtmlUnit es un emulador de navegador en Java. No solo analiza HTML, sino que procesa completamente la página: ejecuta JavaScript, carga CSS y maneja solicitudes AJAX. Ideal para sitios SPA modernos (React, Angular).



Instalación (Maven)

<dependency>    <groupId>net.sourceforge.htmlunit</groupId>    <artifactId>htmlunit</artifactId>    <version>2.70.0</version></dependency>


Ejemplo: obtener datos después de la carga de JavaScript

Supongamos que en la página hay un bloque dinámico que aparece 2 segundos después de la carga. HtmlUnit esperará a que aparezca.

import com.gargoylesoftware.htmlunit.WebClient;import com.gargoylesoftware.htmlunit.html.HtmlPage;import com.gargoylesoftware.htmlunit.html.HtmlElement;

public class HtmlUnitExample { public static void main(String[] args) throws Exception { try (WebClient webClient = new WebClient()) { // Desactivamos CSS y el registro para mayor velocidad webClient.getOptions().setCssEnabled(false); webClient.getOptions().setJavaScriptEnabled(true);

// Cargamos la página HtmlPage page = webClient.getPage("https://example.com/dynamic");

Recommendations