Python: Comment ignorer la plupart des balises html et sélectionner uniquement le texte (peut-être avec Regex?
salut, j'ai quelques fichiers html avec des balises telles que <div id =" "> </div>, <span class ..>, <dt>, <br>, etc.
Mais, aussi, j'ai ces 4 balises spéciales.
Code:
1 2 3 4 5 6 7
| <title> J'adore les films </title>
<h1 class =" den_articol "itemprop =" name "> Les hauteurs des espaces éternels </h1>
<p class =" text_obisnuit "> À la fin du film <em> je le vois bien différent </em> qu'il était avant. </p>
<p class =" text_obisnuit2 "> Allez, apportez-moi du café. </p> |
**LE PROBLÈME:**
Avec mon code Python, je veux sélectionner le texte UNIQUEMENT à partir de ces 4 balises et en ignorer les autres. Et je dois garder ces balises intactes. Donc, j'écris les délimiteurs comme ci-dessous:
Vous avez mon script complet HERE
Code:
1 2 3 4
| extensie_fisier = ".html"
lista_cale_fisiere = []
delimitatori_text = [['<title','</title>'], ['<h1 class="den_articol" itemprop="name', '</h1>'], ['<p class="text_obisnuit', '</p>'], ['<span class="text', '</span>']] |
Ma méthode fonctionne, la traduction est correcte sur ces balises html. Donc, la sélection est bonne. Mais a quelques petites erreurs. De nombreuses balises changent. Certains espaces vides se produisent après l'exécution du code. </span> devient </ SPAN> ou <em> devient </ EM>. Idem pour </ li> ou </ ol>.
et s'il y avait une solution plus simple? Je me demande si je ne pourrais pas faciliter l'opération avec un REGEX. Par exemple ceci REGEX (<([^>]+)>.*?) sélectionnera toutes les balises html possibles, et mon code Python sélectionnera plus facilement le texte et le traduira. Je pense donc qu'il peut ignorer les balises html.
Le problème dans ce cas est que je ne sais pas comment GARDER les balises html après avoir exécuté le code Python avec ce Regex. Et je ne sais pas où insérer cette expression régulière dans mon code.
Encore une fois, vous avez mon script complet HERE