Utilisation d'une regex
En utilisant une regex, vous pouvez nettoyer tout ce qui se trouve à l'intérieur. <>
:
import re
# as per recommendation from @freylis, compile once only
CLEANR = re.compile('<.*?>')
def cleanhtml(raw_html):
cleantext = re.sub(CLEANR, '', raw_html)
return cleantext
Certains textes HTML peuvent également contenir des entités qui ne sont pas entre parenthèses, telles que ' &nsbm
'. Si c'est le cas, vous pouvez écrire la regex comme suit
CLEANR = re.compile('<.*?>|&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});')
Ce site lien contient plus de détails à ce sujet.
Utilisation de BeautifulSoup
Vous pouvez également utiliser BeautifulSoup
paquet supplémentaire pour découvrir tout le texte brut.
Vous devez définir explicitement un analyseur syntaxique lorsque vous appelez BeautifulSoup. Je recommande "lxml"
comme mentionné dans les réponses alternatives (beaucoup plus robuste que celle par défaut ( html.parser
) (c'est-à-dire disponible sans installation supplémentaire).
from bs4 import BeautifulSoup
cleantext = BeautifulSoup(raw_html, "lxml").text
Mais cela ne vous empêche pas d'utiliser des bibliothèques externes, je recommande donc la première solution.
EDIT : Pour utiliser lxml
vous devez pip install lxml
.
2 votes
Y a-t-il une raison spécifique pour laquelle vous ne voulez pas utiliser un module externe ?
1 votes
Pas de permissions pour installer des modules sur le serveur...