Analizar HTML en Java

MD Aminul Islam 12 octubre 2023
  1. Funcionamiento de Jsoup en Java
  2. Use Jsoup para analizar HTML en Java
Analizar HTML en Java

Si está trabajando en un programa que funciona con archivos HTML, es posible que necesite encontrar una manera de analizar los archivos HTML de manera eficiente. Puede analizar rápidamente archivos HTML a través del lenguaje de programación Java utilizando la herramienta de raspado web más utilizada, Jsoup.

Este artículo explica cómo analizar un archivo HTML. Además, discutiremos el tema proporcionando ejemplos y explicaciones necesarios para facilitar el tema.

Funcionamiento de Jsoup en Java

El Jsoup funciona analizando el archivo HTML de la página web y luego convirtiéndolo en un objeto Documento. Puedes decir esto como una representación programática del DOM.

Un método llamado parse en Jsoup crea el Documento. A continuación se analizan algunas de las funciones de Jsoup:

  1. parse(File MyFile, @Nullable String charsetName): se utiliza para analizar un archivo HTML.
  2. parse(InputStream in, @Nullable String CharsetName, String BaseUri): lee el InputStream y lo analiza.
  3. parse(String html): se utiliza para analizar una cadena HTML.

Use Jsoup para analizar HTML en Java

Nuestro ejemplo a continuación analizará un sitio web usando el Jsoup. El código Java para nuestro ejemplo será el siguiente:

// importing necessary packages
package javaparsehtml;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class JavaParseHtml {
  public static void main(String[] args) {
    URL MyUrl;
    try {
      // Providing the URL of the website
      MyUrl = new URL("https://www.example.com");
      HttpURLConnection MyConnection;
      try {
        // Create an Http connection
        MyConnection = (HttpURLConnection) MyUrl.openConnection();
        // Defining the request format
        MyConnection.setRequestProperty("accept", "application/json");

        try {
          // Create a response stream
          InputStream ResponseStream = MyConnection.getInputStream();

          // Parsing the website
          Document MyDoc = Jsoup.parse(ResponseStream, "UTF-8", "https://www.example.com");
          // Showing the output as HTML
          System.out.println(MyDoc.html());
        } catch (IOException e) {
          e.printStackTrace();
        }
      } catch (IOException e) {
        e.printStackTrace();
      }

    } catch (MalformedURLException e) {
      e.printStackTrace();
    }
  }
}

En nuestro ejemplo anterior, ilustraremos cómo podemos analizar un archivo HTML, y ya hemos ordenado el propósito de cada línea.

En el ejemplo, creamos una conexión HTTP basada en la URL proporcionada y luego definimos la propiedad solicitada. Después de eso, creamos un InputStream y analizamos el sitio web.

Por último, imprimimos el sitio web como salida. Después de ejecutar el programa Java anterior, obtendrá un resultado como el siguiente:

<!doctype html>
<html>
 <head>
  <title>Example Domain</title>
  <meta charset="utf-8">
  <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style type="text/css">
    body {
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
        
    }
    div {
        width: 600px;
        margin: 5em auto;
        padding: 2em;
        background-color: #fdfdff;
        border-radius: 0.5em;
        box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
    }
    a:link, a:visited {
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
        div {
            margin: 0 auto;
            width: auto;
        }
    }
    </style>
 </head>
 <body>
  <div>
   <h1>Example Domain</h1>
   <p>This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.</p>
   <p><a href="https://www.iana.org/domains/example">More information...</a></p>
  </div>
 </body>
</html>

Una nota importante aquí, si no tiene instalado o incluido el archivo jar del Jsoup, primero debe incluir el archivo jar en el directorio de su proyecto o instalar el paquete. De lo contrario, puede obtener errores.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn