Supprimer les balises HTML d'une chaîne en Python

Fariba Laiq 10 octobre 2023
  1. Utiliser Regex pour supprimer les balises HTML d’une chaîne en Python
  2. Utilisez BeautifulSoup pour supprimer les balises HTML d’une chaîne en Python
  3. Utilisez xml.etree.ElementTree pour supprimer les balises HTML d’une chaîne en Python
Supprimer les balises HTML d'une chaîne en Python

Dans ce guide, nous allons apprendre et appliquer quelques méthodes pour supprimer les balises HTML d’une chaîne. Nous utiliserons la regex, BeautifulSoup, et l’arborescence des éléments XML.

Utiliser Regex pour supprimer les balises HTML d’une chaîne en Python

Comme les balises HTML contiennent toujours le symbole <>. Nous allons importer le module intégré re (expression régulière) et utiliser la méthode compile() pour rechercher le modèle défini dans la chaîne d’entrée.

Ici, le modèle <.*?> signifie zéro ou plusieurs caractères à l’intérieur de la balise <> et en correspond le moins possible.

La méthode sub() permet de remplacer les occurrences d’une chaîne par une autre chaîne. Ici, il remplacera les occurrences trouvées par une chaîne vide.

Exemple de code :

# 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)

Production:

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

Utilisez BeautifulSoup pour supprimer les balises HTML d’une chaîne en Python

BeautifulSoup est une bibliothèque Python pour obtenir les données de HTML et XML. Il utilise un analyseur pour analyser le HTML et le XML ; celui recommandé est lxml.

Nous devons installer les deux avant de continuer, en utilisant les commandes suivantes :

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

Nous avons importé le module BeautifulSoup et analysé la chaîne HTML donnée dans le code suivant. Nous avons accédé au texte depuis le HTML en utilisant l’attribut text.

Exemple de code :

# 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)

Production:

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

Utilisez xml.etree.ElementTree pour supprimer les balises HTML d’une chaîne en Python

ElementTree est une bibliothèque qui analyse et navigue dans XML. La méthode fromstring() analyse le XML directement d’une chaîne à un élément, qui est un élément racine de l’arbre d’analyse.

Le itertext() produit un itérateur de texte qui boucle sur cet élément et tous ses sous-éléments dans l’ordre du document, renvoyant tout le texte interne. En fusionnant tous les composants (texte interne) d’un itérable (chaîne d’entrée), séparés par un séparateur de chaîne, la méthode join() renvoie une chaîne exempte de balises HTML.

Exemple de code :

# 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()))

Production:

#Python 3.x
String before cleaning: <h1>Delftstack</h1>
String after cleaning: Delftstack
Auteur: Fariba Laiq
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

Article connexe - Python String