HTML-Tags aus einer Zeichenkette in Python entfernen

Fariba Laiq 10 Oktober 2023
  1. Verwenden Sie Regex, um HTML-Tags aus einer Zeichenfolge in Python zu entfernen
  2. Verwenden Sie BeautifulSoup, um HTML-Tags aus einem String in Python zu entfernen
  3. Verwenden Sie xml.etree.ElementTree, um HTML-Tags aus einem String in Python zu entfernen
HTML-Tags aus einer Zeichenkette in Python entfernen

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

Verwandter Artikel - Python String