Test: Descubre qué bootcamp es para ti

whatsapp keepcoding

¿Qué es import html.parser y cómo funciona en Python?

| Última modificación: 27 de enero de 2025 | Tiempo de Lectura: 4 minutos

Si buscas algunas formas de analizar HTML en Python, una de las soluciones nativas que ofrece este lenguaje es import html.parser. Hemos hablado mucho de parser antes, aludiendo al hecho de que esta es una palabra que, únase a otras o no, implica un cambio de formato o tipo de texto a otro. Esto quiere decir que este módulo te permite procesar contenido HTML de manera más simple y eficiente y adaptándote a diferentes escenarios. En este artículo te enseñaremos qué es, cómo funciona y qué utilidad puedes sacarle.

import html.parser

¿Qué es import html.parser?

El módulo de import html.parser forma parte de la biblioteca estándar de Python y nos proporciona la clase HTMLParser, que ha sido diseñada para analizar HTML y XHTML, inclusive si no están bien formateados. Esta es una herramienta que se basa en el modelo de un analizador de eventos, es decir, a medida que encuentra elementos HTML, activa métodos específicos que puedes ir personalizando para definir cómo manejar cada caso.

Cuando usas este módulo, no requieres de estar instalando bibliotecas externas, lo cual hace que sea una opción bastante práctica para ejecutar tareas comunes de análisis HTML, como lo son extraer texto o procesar etiquetas específicas.

El módulo de import html.parser funciona del siguiente modo: es como tener un texto en un idioma desconocido y llega un traductor a explicarte cada palabra o frase que encuentra. El traductor analiza línea por línea y te notifica cada vez que encuentras algo importante, por ejemplo un encabezado o una palabra clave. Así funciona import html.parser analiza el HTML y llama a métodos específicos para manejar cada evento, como etiquetas de inicio, etiquetas de cierre y contenido textual.

Extraer texto de un HTML: un ejemplo

Si necesitas extraer el texto de un documento HTML y omitir las etiquetas, puedes sobrescribir solo el método handle_data.

class ExtraerTexto(HTMLParser):
def __init__(self):
super().__init__()
self.texto = []

def handle_data(self, data):
if data.strip():
self.texto.append(data)

def obtener_texto(self):
return ' '.join(self.texto)

html = "<h1>Título</h1><p>Este es un párrafo.</p>"
analizador = ExtraerTexto()
analizador.feed(html)
print(analizador.obtener_texto())

Salida:

Título Este es un párrafo.

¿Cómo usar import html.parser en Python?

  • Configura un analizador básico: El primer paso para usar import html.parser es importar el módulo y crear una clase personalizada que herede de HTMLParser. Dentro de esta clase podemos sobreescribir métodos como handle_starttag, handle_endtag y handle_data y así podemos definir cómo manejar los eventos del análisis:
from html.parser import HTMLParser

class MiAnalizador(HTMLParser):
def handle_starttag(self, tag, attrs):
print(f"Etiqueta de inicio encontrada: {tag}")

def handle_endtag(self, tag):
print(f"Etiqueta de cierre encontrada: {tag}")

def handle_data(self, data):
if data.strip(): # Ignorar espacios en blanco
print(f"Datos encontrados: {data}")

# Crear una instancia del analizador
analizador = MiAnalizador()
  • Alimenta el analizador con datos HTML: el método feed nos permite procesar fragmentos de HTML. A medida que el analizador va leyendo contenido, activa los métodos que definiste anteriormente:
html = "<html><head><title>Prueba</title></head><body><h1>¡Analízame!</h1></body></html>"
analizador.feed(html)
  • Resultado del análisis: Si ejecutas el código anterior, el analizador notificará cada etiqueta y contenido que encuentre:
Etiqueta de inicio encontrada: html
Etiqueta de inicio encontrada: head
Etiqueta de inicio encontrada: title
Datos encontrados: Prueba
Etiqueta de cierre encontrada: title
Etiqueta de cierre encontrada: head
Etiqueta de inicio encontrada: body
Etiqueta de inicio encontrada: h1
Datos encontrados: ¡Analízame!
Etiqueta de cierre encontrada: h1
Etiqueta de cierre encontrada: body
Etiqueta de cierre encontrada: html

Ventajas y desventajas de import html.parser

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

El módulo import html.parser tiene diferentes ventajas y desventajas que pueden ser determinantes para su buen uso. Veamos:

Ventajas y desventajas de import html.parser
Ventajas Desventajas
Ligero y nativo, no requiere instalaciones adicionales. Menos potente que bibliotecas externas como BeautifulSoup.
Soporte para HTML no válido. Limitado a tareas simples y análisis básicos.
Permite personalizar el manejo de eventos HTML. No ideal para trabajar con datos muy grandes o complejos.

Métodos principales de HTMLParser

Algunos de los métodos más importantes de HTMLParser son:

Métodos principales de HTMLParser
Método Descripción
feed Alimenta el analizador con texto HTML para procesarlo. Fragmentos incompletos se almacenan hasta que se completen.
handle_starttag Se llama cuando se encuentra una etiqueta de inicio. Recibe el nombre de la etiqueta y sus atributos.
handle_endtag Se llama cuando se encuentra una etiqueta de cierre.
handle_data Procesa contenido textual entre etiquetas HTML.
reset Reinicia el analizador, eliminando cualquier dato no procesado.
getpos Devuelve la posición actual en el texto analizado, incluyendo el número de línea y el desplazamiento.
get_starttag_text Obtiene el texto de la etiqueta de inicio más reciente.

Si te interesa el campo de la programación y quieres esguir aprendiendo sobre diferentes temáticas relacionadas, no dudes en inscribirte a nuestro bootcamp de programación desde cero, en el cual adquirirás las habilidades necesarias para incursionar en el campo de la programación. No dudes más y da el paso para cambiar tu futuro laboral ahora.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a programar desde cero

Full Stack JR. Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado