HOWTO · Python
HTML-Tags aus einer Zeichenkette in Python entfernen
Dieses Tutorial zeigt, wie Sie HTML-Tags aus einer Zeichenfolge in Python entfernen.
Auf dieser Seite
In diesem Leitfaden lernen und wenden wir einige Methoden an, um HTML-Tags aus einer Zeichenfolge zu entfernen. Wir werden die Regex BeautifulSoup und den XML-Elementbaum verwenden.
Verwenden Sie Regex, um HTML-Tags aus einer Zeichenfolge in Python zu entfernen
Da HTML-Tags immer das Symbol <> enthalten. Wir importieren das eingebaute re-Modul (regulärer Ausdruck) und verwenden die compile()-Methode, um nach dem definierten Muster in der Eingabezeichenfolge zu suchen.
Hier bedeutet das Muster <.*?> null oder mehr Zeichen innerhalb des Tags <> und entspricht so wenig wie möglich.
Die Methode sub() wird verwendet, um das Vorkommen eines Strings durch einen anderen String zu ersetzen. Hier werden die gefundenen Vorkommen durch eine leere Zeichenfolge ersetzt.
Beispielcode:
# 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)
Ausgabe:
#Python 3.x
String before cleaning: <h1>Delftstack</h1>
String after cleaning: Delftstack
Verwenden Sie BeautifulSoup, um HTML-Tags aus einem String in Python zu entfernen
BeautifulSoup ist eine Python-Bibliothek, um die Daten aus HTML und XML zu erhalten. Es verwendet einen Parser, um HTML und XML zu parsen; empfohlen ist lxml.
Wir müssen beide installieren, bevor wir fortfahren, indem wir die folgenden Befehle verwenden:
#Python 3.x
pip install beautifulsoup4
#Python 3.x
pip install lxml
Wir haben das BeautifulSoup-Modul importiert und den angegebenen HTML-String im folgenden Code geparst. Auf den Text aus dem HTML haben wir mit dem Attribut text zugegriffen.
Beispielcode:
# 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)
Ausgabe:
#Python 3.x
String after cleaning: <h1>Delftstack</h1>
String after cleaning: Delftstack
Verwenden Sie xml.etree.ElementTree, um HTML-Tags aus einem String in Python zu entfernen
Der ElementTree ist eine Bibliothek, die XML analysiert und darin navigiert. Die Methode fromstring() parst das XML direkt von einem String zu einem Element, das ein Wurzelelement des Parse-Baums ist.
Der itertext() erzeugt einen Text-Iterator, der dieses Element und alle seine Unterelemente in Dokumentenreihenfolge durchläuft und den gesamten inneren Text zurückgibt. Durch Zusammenführen aller Komponenten (innerer Text) eines Iterables (Eingabe-String), getrennt durch ein String-Trennzeichen, gibt die Methode join() einen String zurück, der frei von HTML-Tags ist.
Beispielcode:
# 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()))
Ausgabe:
#Python 3.x
String before cleaning: <h1>Delftstack</h1>
String after cleaning: Delftstack