Maison >développement back-end >Tutoriel Python >Comment puis-je supprimer efficacement les balises HTML des chaînes en Python ?
Supprimer les balises HTML des chaînes en Python
En Python, il existe différents scénarios dans lesquels vous devrez peut-être supprimer les balises HTML d'une chaîne pour extraire son contenu. Explorons une solution à ce problème.
Supposons que vous récupériez du contenu HTML à l'aide de la bibliothèque mechanize, comme indiqué dans l'exemple d'extrait de code. Chaque ligne du contenu contient des balises HTML et du texte. Pour extraire uniquement le texte, nous devons supprimer les balises.
Une option consiste à utiliser une fonction personnalisée pour effectuer cette tâche. La fonction strip_tags utilise la classe HTMLParser pour créer un analyseur qui traite le contenu HTML. L'analyseur extrait uniquement les données contenues dans les balises et les accumule dans un objet StringIO.
Voici l'extrait de code pour Python 3 :
from io import StringIO from html.parser import HTMLParser class MLStripper(HTMLParser): def __init__(self): super().__init__() self.reset() self.strict = False self.convert_charrefs= True self.text = StringIO() def handle_data(self, d): self.text.write(d) def get_data(self): return self.text.getvalue() def strip_tags(html): s = MLStripper() s.feed(html) return s.get_data()
Pour Python 2, utilisez le code suivant :
from HTMLParser import HTMLParser from StringIO import StringIO class MLStripper(HTMLParser): def __init__(self): self.reset() self.text = StringIO() def handle_data(self, d): self.text.write(d) def get_data(self): return self.text.getvalue() def strip_tags(html): s = MLStripper() s.feed(html) return s.get_data()
En passant le contenu HTML à cette fonction, vous pouvez effectivement supprimer les balises et conserver uniquement le texte contenu.
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!