extrahieren Text aus html mit python
Ihr Ziel ist es, Text aus einer HTML -Datei in Python zu extrahieren, indem Sie den Text kopieren. Editor.
Herausforderungen
reguläre Ausdrücke sind nicht robust genug für schlecht geformte Html. Während eine schöne Suppe oft empfohlen wird, kann sie unerwünschte Inhalte wie JavaScript aufnehmen und HTML -Entitäten nicht interpretieren. Seine Dokumentation und Beispiele sind jedoch begrenzt.
optimaler Code für Text Extraktion
Der folgende Code bietet eine wirksame Lösung, die unerwünschte Elemente herausfiltert und html Entitäten bewahrt:
from urlib.request importiert Urlopen importieren Urlopen importieren Urlopen aus Urlopen importieren Aus BS4 Import BeautifulSoup url = "http://news.bbc.co.uk/2/hi/health/2284783.stm" html = urlopen (url) .read () Suppe = BeautifulSoup (HTML, Features = "html.parser") # Skripte und Stile entfernen Für Skript in Suppe (["Skript", "Stil"]): script.extract () # Text extrahieren text = supersuppe.get_text () # Zeilenumbrüche konvertieren und Whitespace entfernen Linien = (Zeile.strip () für Zeile in text.Splitlines ()) Chunks = (Phrase.strip () für Linien in Linien für die Phrase in der Linie.Split ("")) text = '\ n'.join (Chunk für Chunk in Stücken, wenn einstapfen) print (text)
abhängig
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)
pip installieren Sie BeautifulSoup4
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3