Maison > développement back-end > Tutoriel Python > Comment puis-je extraire efficacement du texte propre du HTML en Python ?

Comment puis-je extraire efficacement du texte propre du HTML en Python ?

Mary-Kate Olsen
Libérer: 2024-11-29 22:58:11
original
637 Les gens l'ont consulté

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

Extraire du texte de HTML avec Python

Votre objectif est d'extraire le texte d'un fichier HTML en Python, en reproduisant le résultat que vous obtiendriez en copiant le texte depuis un navigateur et en le collant dans un texte éditeur.

Défis

Les expressions régulières ne sont pas assez robustes pour du HTML mal formé. Bien que Beautiful Soup soit souvent recommandé, il peut récupérer du contenu indésirable comme JavaScript et ne pas parvenir à interpréter les entités HTML.

Alternative prometteuse : html2text

Bien qu'il produise des démarques au lieu de texte brut, html2text gère correctement les entités HTML et ignore JavaScript. Cependant, sa documentation et ses exemples sont limités.

Code optimal pour l'extraction de texte

Le code ci-dessous offre une solution efficace qui filtre les éléments indésirables et préserve les entités HTML :

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)
Copier après la connexion

Dépendance

Pour utiliser ce code, vous aurez besoin BeautifulSoup4 installé avec :

pip install beautifulsoup4
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal