Maison > développement back-end > Tutoriel Python > Comment puis-je extraire efficacement du texte propre à partir de fichiers HTML à l'aide de Python ?

Comment puis-je extraire efficacement du texte propre à partir de fichiers HTML à l'aide de Python ?

Patricia Arquette
Libérer: 2024-11-29 03:54:09
original
677 Les gens l'ont consulté

How Can I Efficiently Extract Clean Text from HTML Files Using Python?

Extraire du texte de fichiers HTML avec Python : un guide complet

Introduction

Extraire du texte à partir de fichiers HTML peut être essentiel pour diverses tâches de traitement et d’analyse de données. Bien que les expressions régulières puissent être réalisables pour des structures HTML simples, elles peuvent avoir des difficultés avec un code mal formé. Cet article explore l'alternative robuste - Beautiful Soup - et fournit une solution pratique qui supprime efficacement le JavaScript indésirable et interprète les entités HTML.

Utiliser Beautiful Soup

Pour extraire du texte à l'aide Beautiful Soup, suivez ces étapes :

  1. Importez la bibliothèque BeautifulSoup.
  2. Ouvrez le fichier HTML en utilisant urlopen().
  3. Créez un objet BeautifulSoup avec BeautifulSoup(html, feature="html.parser").
  4. Supprimez les éléments indésirables (par exemple, les scripts et les styles) avec for script in soup([ "script", "style"]) : script.extract().
  5. Extraire le texte avec soup.get_text().
  6. Divisez le texte en lignes et supprimez les espaces blancs avec lines = (line.strip() pour la ligne dans text.splitlines()).
  7. Séparez les plusieurs titres avec chunks = (phrase.strip() pour la ligne dans les lignes pour la phrase dans line.split(" ")).
  8. Supprimez les lignes vides avec text = 'n'.join (morceau pour morceau en morceaux si morceau).

Exemple de code

Voici un exemple de code complet :

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")
for script in soup(["script", "style"]):
    script.extract()
text = soup.get_text()
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

Supplémentaire Options

  • html2text : Une bibliothèque alternative qui gère les entités HTML et ignore JavaScript. Cependant, il produit du Markdown au lieu du texte brut.
  • lxml : Une puissante bibliothèque d'analyseurs XML et HTML qui peut également extraire du texte après avoir supprimé les balises.

Conclusion

Ce guide fournit une solution complète pour extraire du texte à partir de fichiers HTML à l'aide de BeautifulSoup. En supprimant les éléments indésirables et en interprétant les entités HTML, il génère efficacement une sortie en texte brut pour un traitement et une analyse ultérieurs.

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