Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich sauberen Text effizient aus HTML in Python extrahieren?

Wie kann ich sauberen Text effizient aus HTML in Python extrahieren?

Mary-Kate Olsen
Freigeben: 2024-11-29 22:58:11
Original
616 Leute haben es durchsucht

How Can I Efficiently Extract Clean Text from HTML in Python?

Text aus HTML mit Python extrahieren

Ihr Ziel ist es, Text aus einer HTML-Datei in Python zu extrahieren und die Ausgabe zu reproduzieren, die Sie erhalten würden indem Sie den Text aus einem Browser kopieren und in einen Text einfügen Editor.

Herausforderungen

Reguläre Ausdrücke sind für schlecht geformtes HTML nicht robust genug. Obwohl Beautiful Soup oft empfohlen wird, kann es unerwünschte Inhalte wie JavaScript auffangen und HTML-Entitäten nicht interpretieren.

Vielversprechende Alternative: html2text

Obwohl es statt Markdown erzeugt Nur Text, html2text verarbeitet HTML-Entitäten korrekt und ignoriert JavaScript. Die Dokumentation und Beispiele sind jedoch begrenzt.

Optimaler Code für die Textextraktion

Der folgende Code bietet eine effektive Lösung, die unerwünschte Elemente herausfiltert und HTML-Entitäten beibehält:

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 scripts and styles
for script in soup(["script", "style"]):
    script.extract()

# Extract text
text = soup.get_text()

# Convert line breaks and remove whitespace
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

Abhängigkeit

Um diesen Code zu verwenden, benötigen Sie BeautifulSoup4 installiert mit:

pip install beautifulsoup4
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich sauberen Text effizient aus HTML in Python extrahieren?. 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