Heim >Backend-Entwicklung >Python-Tutorial >Wie extrahiere ich mit BeautifulSoup nur sichtbaren Text aus Webseiten?
Extrahieren von Webseitentext mit BeautifulSoup: Exklusives Extrahieren von sichtbarem Text
Web Scraping beinhaltet häufig das Abrufen bestimmter Textinhalte von Webseiten. Bei Verwendung von BeautifulSoup, einer weit verbreiteten HTML-Parsing-Bibliothek, stehen Sie möglicherweise vor der Herausforderung, nur den sichtbaren Text auf einer Webseite zu extrahieren und unerwünschte Elemente wie Skripte, Kommentare und CSS auszuschließen.
Sichtbaren Text identifizieren
Um festzustellen, ob ein bestimmtes HTML-Element sichtbaren Text enthält, können Sie die Funktion tag_visible verwenden. Diese Funktion prüft, ob das übergeordnete Element des Zielelements innerhalb eines bestimmten Satzes ausgeschlossener Tags (z. B. Stil, Skript, Kopf) liegt oder ob das Zielelement ein Kommentar ist. Wenn eine der Bedingungen erfüllt ist, gibt die Funktion „False“ zurück und gibt an, dass das Element nicht als sichtbar gilt.
Sichtbaren Text extrahieren
Um den sichtbaren Text aus einer Webseite zu extrahieren, Befolgen Sie diese Schritte:
Beispielverwendung
Der folgende Code zeigt, wie Sie diese Techniken verwenden, um sichtbaren Text aus einer Webseite zu extrahieren:
from bs4 import BeautifulSoup from bs4.element import Comment import urllib.request def tag_visible(element): if element.parent.name in ['style', 'script', 'head', 'title', 'meta', '[document]']: return False if isinstance(element, Comment): return False return True def text_from_html(body): soup = BeautifulSoup(body, 'html.parser') texts = soup.findAll(text=True) visible_texts = filter(tag_visible, texts) return u" ".join(t.strip() for t in visible_texts) html = urllib.request.urlopen('http://www.nytimes.com/2009/12/21/us/21storm.html').read() print(text_from_html(html))
Durch die Nutzung dieses Ansatzes können Sie sichtbaren Text effektiv von Webseiten entfernen und irrelevante Inhalte ausschließen aus Skripten, Kommentaren und anderen versteckten Elementen.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich mit BeautifulSoup nur sichtbaren Text aus Webseiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!