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