Comment puis-je retirer simplement toutes les balises d'un élément que je trouve dans BeautifulSoup ?
Réponses
Trop de publicités?Pourquoi aucune réponse que j'ai vue n'a mentionné quoi que ce soit au sujet de la unwrap
méthode ? Ou, encore plus facile, la get_text
méthode
http://www.crummy.com/software/BeautifulSoup/bs4/doc/#unwrap http://www.crummy.com/software/BeautifulSoup/bs4/doc/#get-text
Utilisez get_text() elle renvoie tout le texte contenu dans un document ou sous une balise, sous la forme d'une seule chaîne Unicode.
Par exemple, supprimez toutes les différentes balises script du texte suivant :
<td><a href="http://www.irit.fr/SC">Signal et Communication</a>
<br/><a href="http://www.irit.fr/IRT">Ingénierie Réseaux et Télécommunications</a>
</td>
Le résultat attendu est :
Signal et Communication
Ingénierie Réseaux et Télécommunications
Voici le code source :
#!/usr/bin/env python3
from bs4 import BeautifulSoup
text = '''
<td><a href="http://www.irit.fr/SC">Signal et Communication</a>
<br/><a href="http://www.irit.fr/IRT">Ingénierie Réseaux et Télécommunications</a>
</td>
'''
soup = BeautifulSoup(text)
print(soup.get_text())
Vous pouvez utiliser la méthode de décomposition dans bs4 :
soup = bs4.BeautifulSoup('<body><a href="http://example.com/">I linked to <i>example.com</i></a></body>')
for a in soup.find('a').children:
if isinstance(a,bs4.element.Tag):
a.decompose()
print soup
Out: <html><body><a href="http://example.com/">I linked to </a></body></html>
- Réponses précédentes
- Plus de réponses