Java:
Análisis de HTML

Cómo hacerlo:

Vamos a utilizar la librería jsoup. Primero, agregala a tu proyecto usando Maven:

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

Ahora, un ejemplo simple para obtener el título de una página web:

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

public class HtmlParserDemo {
    public static void main(String[] args) throws Exception {
        String url = "https://example.com";
        Document doc = Jsoup.connect(url).get();
        String title = doc.title();
        
        System.out.println("El título de la página es: " + title);
    }
}

Si corres esto, tendrás como resultado:

El título de la página es: Example Domain

Profundizando

Parsear HTML no es nuevo; es fundamental para los motores de búsqueda y herramientas de análisis web desde los inicios de la web. Antes de jsoup, librerías como JTidy y HTMLParser eran populares, pero jsoup es conocido por su simplicidad y su capacidad para manejar HTML “sucio”. El parseo implica típicamente convertir la estructura del DOM (Modelo de Objeto de Documento) de HTML a objetos en Java que puedes manipular con métodos.

La complejidad de parsear viene del hecho del HTML no siempre sigue las reglas estrictas de XML, donde cada elemento se cierra adecuadamente. HTML es, por naturaleza, más flexible, y los navegadores modernos son muy tolerantes con el código imperfecto. Jsoup emula esa tolerancia, creando un árbol DOM a partir de HTML realista, no idealizado.

Alternativas a jsoup incluyen HtmlUnit y tagsoup, pero jsoup lidera en facilidad de uso. En general, cuando parsees HTML deberías siempre ser consciente del hecho que las estructuras de páginas web pueden cambiar; cualquier solución debe ser mantenida para adaptarse a esos cambios.

Ver También