Eliminar etiquetas HTML de una cadena en Python

Fariba Laiq 10 octubre 2023
  1. Use Regex para eliminar etiquetas HTML de una cadena en Python
  2. Use BeautifulSoup para eliminar etiquetas HTML de una cadena en Python
  3. Use xml.etree.ElementTree para eliminar etiquetas HTML de una cadena en Python
Eliminar etiquetas HTML de una cadena en Python

En esta guía, aprenderemos y aplicaremos algunos métodos para eliminar etiquetas HTML de una cadena. Usaremos la expresión regular, BeautifulSoup, y el árbol de elementos XML.

Use Regex para eliminar etiquetas HTML de una cadena en Python

Como las etiquetas HTML siempre contienen el símbolo <>. Importaremos el módulo re incorporado (expresión regular) y usaremos el método compile() para buscar el patrón definido en la cadena de entrada.

Aquí, el patrón <.*?> significa cero o más caracteres dentro de la etiqueta <> y coincide con la menor cantidad posible.

El método sub() se utiliza para reemplazar las ocurrencias de una cadena con otra cadena. Aquí, reemplazará las ocurrencias encontradas con una cadena vacía.

Código de ejemplo:

# Python 3.x
import re

string = "<h1>Delftstack</h1>"
print("String before cleaning:", string)
to_clean = re.compile("<.*?>")
cleantext = re.sub(to_clean, "", string)
print("String after cleaning:", cleantext)

Producción :

#Python 3.x
String before cleaning: <h1>Delftstack</h1>
String after cleaning: Delftstack

Use BeautifulSoup para eliminar etiquetas HTML de una cadena en Python

BeautifulSoup es una biblioteca de Python para obtener los datos de HTML y XML. Utiliza un analizador para analizar HTML y XML; uno recomendado es lxml.

Necesitamos instalar ambos antes de continuar, usando los siguientes comandos:

#Python 3.x
pip install beautifulsoup4
#Python 3.x
pip install lxml

Importamos el módulo BeautifulSoup y analizamos la cadena HTML dada en el siguiente código. Accedemos al texto desde el HTML usando el atributo texto.

Código de ejemplo:

# Python 3.x
from bs4 import BeautifulSoup

string = "<h1>Delftstack</h1>"
print("String after cleaning:", string)
cleantext = BeautifulSoup(string, "lxml").text
print("String after cleaning:", cleantext)

Producción :

#Python 3.x
String after cleaning: <h1>Delftstack</h1>
String after cleaning: Delftstack

Use xml.etree.ElementTree para eliminar etiquetas HTML de una cadena en Python

ElementTree es una biblioteca que analiza y navega a través de XML. El método fromstring() analiza el XML directamente desde una cadena a un elemento, que es un elemento raíz del árbol de análisis.

El itertext() produce un iterador de texto que recorre este elemento y todos sus subelementos en el orden del documento, devolviendo todo el texto interno. Al fusionar todos los componentes (texto interno) de un iterable (cadena de entrada), separados por un separador de cadena, el método join() devuelve una cadena libre de etiquetas HTML.

Código de ejemplo:

# Python 3.x
import xml.etree.ElementTree as ET

string = "<h1>Delftstack</h1>"
print("String before cleaning:", string)
tree = ET.fromstring(string)
print("String after cleaning:", "".join(tree.itertext()))

Producción :

#Python 3.x
String before cleaning: <h1>Delftstack</h1>
String after cleaning: Delftstack
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Artículo relacionado - Python String