Extraction de texte de pages Web avec BeautifulSoup : extraire exclusivement du texte visible
Le scraping Web implique souvent la récupération de contenu textuel spécifique à partir de pages Web. En utilisant BeautifulSoup, une bibliothèque d'analyse HTML largement utilisée, vous pouvez rencontrer le défi d'extraire uniquement le texte visible sur une page Web, en excluant les éléments indésirables tels que les scripts, les commentaires et le CSS.
Identifier le texte visible
Pour déterminer si un élément HTML particulier contient du texte visible, vous pouvez utiliser la fonction tag_visible. Cette fonction vérifie si l'élément parent de l'élément cible se trouve dans un ensemble spécifique de balises exclues (par exemple, style, script, head) ou si l'élément cible est un commentaire. Si l'une ou l'autre des conditions est remplie, la fonction renvoie False, indiquant que l'élément n'est pas considéré comme visible.
Extraction du texte visible
Pour extraire le texte visible d'une page Web, suivez ces étapes :
Exemple d'utilisation
Le code ci-dessous montre comment utiliser ces techniques pour extraire le texte visible d'une page Web :
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))
En tirant parti de cette approche, vous pouvez efficacement extraire le texte visible des pages Web, en excluant le contenu non pertinent. à partir de scripts, de commentaires et d'autres éléments cachés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!