jsoup: El analizador HTML para Java
Extrae, limpia y manipula HTML con la simplicidad de jQuery en Java
¿Qué es jsoup?
jsoup es una biblioteca Java ligera pero potente diseñada para trabajar con HTML real. Proporciona una API intuitiva para analizar HTML desde URLs, archivos o cadenas, extraer y manipular datos usando recorrido DOM, selectores CSS y métodos modernos de HTML5. Ideal para web scraping, extracción de datos y saneamiento de HTML, jsoup maneja marcado mal formado con elegancia, igual que lo haría un navegador.
A diferencia de los enfoques con regex, jsoup ofrece un modelo de objetos limpio con métodos inspirados en jQuery, simplificando tareas como envío de formularios, modificación de atributos y extracción de texto. Sin dependencias y con licencia MIT, es la favorita de desarrolladores Java que necesitan procesamiento HTML confiable.
Ventajas clave de jsoup:
- Manejo de HTML real: Analiza HTML desordenado como los navegadores
- Sintaxis estilo jQuery: Selectores CSS familiares (ej.
doc.select("div.content")
) - Amigable para scraping: Sigue redirecciones, maneja cookies y envía formularios
- Multiplataforma: Java puro sin dependencias nativas
- Seguridad: Protección XSS incorporada y saneamiento de HTML
Perfecto para minería de datos, automatización web y análisis de contenido.
¿Por qué elegir jsoup?
- Simplicidad: API intuitiva con soporte para selectores CSS
- Fiabilidad: Mantenido activamente desde 2009
- Rendimiento: Optimizado para streaming y documentos grandes
- Flexibilidad: Funciona con fragmentos, archivos o URLs en vivo
- Salida limpia: Formatea y reestructura HTML
Instalación
Añade jsoup vía Maven o Gradle:
Maven
org.jsoup
jsoup
1.17.2
Gradle
implementation 'org.jsoup:jsoup:1.17.2'
Requisitos del sistema: Java 8+
Ejemplos de Código
Casos de uso prácticos de jsoup:
Ejemplo 1: Analizar un documento desde un String
Si tienes HTML en un String de Java y quieres analizarlo para obtener su contenido o modificarlo, jsoup puede lograrlo con pocas líneas de código.
El método parse(String html, String baseUri) convierte el HTML de entrada en un nuevo Document. El parámetro baseUri ayuda a resolver URLs relativas a absolutas y debe corresponder a la URL desde donde se recuperó el documento. Si esto no es relevante o si el HTML contiene un elemento <base>, puedes usar el método más simple parse(String html).
Ejemplo 2: Usar selectores CSS para encontrar elementos
Quieres encontrar o manipular elementos usando selectores CSS. Analiza y manipula un String HTML directamente:
Ejemplo 3: Modificar el HTML de un elemento
Necesitas modificar el HTML de un elemento. Usa los métodos setters de HTML en Element como se muestra en el siguiente ejemplo:
Funcionalidades Avanzadas
jsoup soporta procesamiento HTML profesional:
- Manejo de formularios: Enviar datos POST:
Envío de Formulario
Connection.Response res = Jsoup.connect("https://example.com/login") .data("username", "user", "password", "pass") .method(Connection.Method.POST) .execute(); Document dashboard = res.parse();
- Soporte para proxy: Scraping mediante proxy:
Configuración de Proxy
Document doc = Jsoup.connect("https://target.com") .proxy("127.0.0.1", 8080) .get();
- Manipulación DOM: Modificar estructura HTML:
Cambios DOM
doc.select("div.ads").remove(); // Elimina todos los anuncios doc.select("h1").attr("class", "header"); // Añade clase CSS
jsoup vs. HTMLUnit
Diferencias clave:
- Enfoque: jsoup analiza HTML estático; HTMLUnit simula navegadores (ejecución JavaScript)
- Velocidad: jsoup es más rápido para análisis HTML puro
- Estilo API: jsoup usa selectores CSS; HTMLUnit imita Selenium
- Casos de uso: jsoup para scraping; HTMLUnit para pruebas de páginas dinámicas
- Dependencias: jsoup no tiene; HTMLUnit requiere bibliotecas adicionales
Conclusión
jsoup es el kit de herramientas definitivo para desarrolladores Java que trabajan con HTML. Ideal para:
- Web scraping: Extraer datos de cualquier sitio web
- Limpieza de datos: Saneamiento y normalización de HTML
- Análisis de contenido: Analizar feeds RSS o archivos web
- Pruebas: Verificar estructura HTML en aplicaciones
Con licencia MIT y API intuitiva, jsoup es la mejor opción para procesamiento HTML en Java.
Productos Similares
- Apache POI XWPF | API Java de código abierto para crear y modificar archivos DOCX
- API FileFormat.Slides | API .NET de código abierto para el formato de archivo PPTX de Microsoft PowerPoint
- API FileFormat.Words | API .NET de código abierto para formatos de archivos de Microsoft Word
- DocX | API .NET de código abierto para crear y modificar archivos DOCX
- Docx4J | API Java de código abierto para crear y modificar archivos DOC y DOCX