Maison  >  Article  >  développement back-end  >  Comment supprimer les balises HTML à l'aide des expressions régulières Python

Comment supprimer les balises HTML à l'aide des expressions régulières Python

王林
王林original
2023-06-22 08:44:102224parcourir

HTML (HyperText Markup Language) est un langage standard pour créer des pages Web. Il utilise des balises et des attributs pour décrire divers éléments de la page, tels que du texte, des images, des tableaux, des liens, etc. Cependant, lors du traitement de texte HTML, il est difficile d'extraire rapidement le contenu du texte pour un traitement ultérieur. À l'heure actuelle, nous pouvons utiliser des expressions régulières en Python pour supprimer les balises HTML afin d'extraire rapidement le texte brut.

En Python, le module d'expression régulière est re. Lors de la suppression des balises HTML, nous pouvons utiliser la fonction re.sub() pour remplacer les balises HTML par des espaces ou d'autres caractères afin d'obtenir du contenu en texte brut. Voici les étapes spécifiques de mise en œuvre :

1. Obtenez le contenu du texte HTML
Tout d'abord, nous devons lire le contenu du texte HTML à partir de la page Web ou d'autres fichiers. En supposant que nous avons stocké le fichier HTML dans un dossier et connaissons son chemin, nous pouvons utiliser les fonctions d'opération de fichier open(), read() et close() en Python pour lire le contenu du fichier HTML.

# 打开文件并读取HTML文本内容
file_path = 'path/to/html/file.html'
with open(file_path, 'r') as f:
    html_text = f.read()

2. Créez un modèle d'expression régulière
Nous devons d'abord créer un modèle d'expression régulière pour faire correspondre toutes les balises HTML et leur contenu. Voici un modèle simple :

pattern = r'<[^>]+>'

Dans ce modèle, "07a75bc1a7636e5c1c0207a1a4c97ba1». Par conséquent, le motif entier supprime tout ce qui se trouve entre une paire de crochets angulaires, y compris les crochets angulaires eux-mêmes. Cependant, ce modèle présente encore certaines limites. Par exemple, il ne peut pas gérer les balises ou les commentaires imbriqués et doit être modifié ou mis à niveau si nécessaire.

3. Utilisez des expressions régulières pour remplacer
Ensuite, nous pouvons utiliser la fonction re.sub() pour appliquer le modèle d'expression régulière au texte HTML afin de terminer le remplacement des balises. Actuellement, nous choisissons de remplacer toutes les balises par des espaces, ce qui préserve les informations de formatage telles que les espaces et les sauts de ligne dans le contenu du texte.

import re

# HTML标签替换为空格
pattern = r'<[^>]+>'
text_without_html = re.sub(pattern, ' ', html_text)

Ce code remplacera toutes les balises HTML correspondantes par un espace et obtiendra finalement une chaîne contenant uniquement du contenu en texte brut.

4. Traiter davantage le contenu du texte
Si vous devez traiter davantage le contenu du texte, par exemple en supprimant des espaces supplémentaires, des signes de ponctuation ou d'autres caractères dénués de sens, nous pouvons utiliser les fonctions de manipulation de chaîne dans Python pour le traitement. Voici quelques exemples :

# 去除多余空格
text_without_html = re.sub(r's+', ' ', text_without_html)

# 去除标点符号
import string
text_without_html = ''.join([c for c in text_without_html if c not in string.punctuation])

Ces codes utiliseront la fonction re.sub() et les fonctions de manipulation de chaînes en Python pour supprimer les espaces et les signes de ponctuation en excès, obtenant ainsi un contenu textuel plus pur.

Résumé :
L'utilisation d'expressions régulières en Python peut facilement supprimer les balises du texte HTML et extraire le contenu du texte brut. Cependant, il faut prêter attention à la construction et à l'application de modèles d'expressions régulières pour gérer différentes situations de texte HTML.


  1. >

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!

Déclaration:
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