.. tout ... - Retrouvez les réponses et les commentaires concernant cette question" />
10
votes

Python Supprimer tout entre

Comment utilisez-vous Python 2.6 pour supprimer tout, y compris le

.... Supprimer tout ....

J'ai essayé de différentes méthodes en utilisant Re2 sans aucun succès

merci


1 commentaires

6 Réponses :


2
votes

Vous ne pouvez pas corriger correctement HTML avec des expressions régulières. Utilisez un analyseur HTML tel que lxml ou beauxoup .


4 commentaires

J'essaie de tout retirer, y compris la DIV et tout, entre les deux. Je ne peux pas sembler trouver une référence à ce sujet dans Beautifulsoup


Un autre exemple, dis comme si je veux supprimer

... , alors j'essaie de supprimer toutes les tables du contenu HTML, je ne sais pas comment faites-vous cela dans BeautifulSoup


Même dans le sous-section "Éléments d'élimination" de la section "Modification de l'arbre d'analyse" de la documentation?


Oui, j'ai vu cela mais vous ne pouvez pas supprimer la classe ou l'identification spécifique liée à cette balise



0
votes

Pour l'enregistrement, il est généralement une mauvaise idée de traiter XML avec des expressions régulières. Néanmoins:

>>> re.sub('>[^<]*', '>', '<div class="comment> .. any… </div>')
'<div class="comment></div>'


2 commentaires

Je me demande si l'OP souhaite également supprimer les articles de livres de la balise DIV en plus du contenu.


Oui, fondamentalement, j'essaie de retirer du début à la fin de la DIV, d'un autre exemple, dites comme si vous souhaitez supprimer certaines table dans des contenus HTML tels que supprimer tout

... ,



0
votes

Way non Regex xxx

sortie xxx


0 commentaires

18
votes

Ceci peut être effectué facilement et de manière fiable à l'aide d'un analyseur HTML comme beauxoup :

>>> from BeautifulSoup import BeautifulSoup
>>> soup = BeautifulSoup('<body><div>1</div><div class="comment"><strong>2</strong></div></body>')
>>> for div in soup.findAll('div', 'comment'):
...   div.extract()
... 
<div class="comment"><strong>2</strong></div>
>>> soup
<body><div>1</div></body>


0 commentaires

0
votes

Utilisez une belle soupe et faites quelque chose comme ça pour obtenir tous ces éléments, puis remplacer simplement l'intérieur

tomatosoup = BeautifulSoup(myhtml)

tomatochunks = tomatosoup.findall("div", {"class":"comment"} )

for chunk in tomatochunks:
   #remove the stuff


1 commentaires

Également si son XML et NON HTML utilisent Beautystonosoup Crémumm.com/software/Beautifulsoup/documentation.html



3
votes

avec lxml.html : xxx


0 commentaires