Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich sauberen Text aus HTML-Dateien in Python extrahieren und gleichzeitig die Fallstricke regulärer Ausdrücke vermeiden?

Wie kann ich sauberen Text aus HTML-Dateien in Python extrahieren und gleichzeitig die Fallstricke regulärer Ausdrücke vermeiden?

Barbara Streisand
Freigeben: 2024-11-28 19:53:14
Original
783 Leute haben es durchsucht

How Can I Extract Clean Text from HTML Files in Python While Avoiding the Pitfalls of Regular Expressions?

Sauberen Text aus HTML-Dateien mit Python extrahieren

Beim Extrahieren von Text aus HTML-Dateien mit Python ist es wichtig, Robustheit und Genauigkeit zu berücksichtigen . Während reguläre Ausdrücke häufig die Aufgabe erfüllen, können sie bei schlecht geformtem HTML Probleme bereiten.

Für robustere Lösungen werden häufig Bibliotheken wie Beautiful Soup empfohlen. Benutzer können jedoch auf Probleme mit unerwünschtem Text, wie z. B. JavaScript-Quellen, und falscher HTML-Entitätsinterpretation stoßen.

Um diese Probleme anzugehen, ist ein umfassenderer Ansatz erforderlich.

html2text: Eine vielversprechende Lösung

Eine vielversprechende Lösung ist html2text. Diese Bibliothek verarbeitet HTML-Entitäten korrekt und ignoriert JavaScript. Es erzeugt jedoch Markdown anstelle von einfachem Text, was eine zusätzliche Verarbeitung zur Konvertierung erfordert.

Nutzung von BeautifulSoup und benutzerdefiniertem Code

Ein alternativer Ansatz besteht darin, BeautifulSoup in Verbindung mit zu verwenden benutzerdefinierter Code. Durch das Entfernen unerwünschter Elemente (z. B. Skripte und Stile) und die Nutzung der get_text()-Methode können Sie eine saubere Textdarstellung erhalten, ohne sich ausschließlich auf reguläre Ausdrücke zu verlassen.

Hier ist ein Python-Codeausschnitt, der diesen Ansatz demonstriert:

from urllib.request import urlopen
from bs4 import BeautifulSoup

url = "http://news.bbc.co.uk/2/hi/health/2284783.stm"
html = urlopen(url).read()
soup = BeautifulSoup(html, features="html.parser")

# Remove script and style elements
for script in soup(["script", "style"]):
    script.extract()

# Extract text
text = soup.get_text()

# Additional processing to remove unwanted whitespace and split headlines into separate lines
lines = (line.strip() for line in text.splitlines())
chunks = (phrase.strip() for line in lines for phrase in line.split("  "))
text = '\n'.join(chunk for chunk in chunks if chunk)

print(text)
Nach dem Login kopieren

Mit diesem Ansatz können Sie sauberen, für Menschen lesbaren Text aus HTML-Dateien extrahieren, ohne die Nachteile regulärer Ausdrücke oder Bibliotheken, die möglicherweise nicht funktionieren alle Szenarien effektiv.

Das obige ist der detaillierte Inhalt vonWie kann ich sauberen Text aus HTML-Dateien in Python extrahieren und gleichzeitig die Fallstricke regulärer Ausdrücke vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage