Python / BeautifulSoup: ¿cómo eliminar todas las tags de un elemento?

¿Cómo puedo simplemente quitar todas las tags de un elemento que encuentro en BeautifulSoup?

Con BeautifulStoneSoup en bs4 , es aún más simple en Python3

 from bs4 import BeautifulSoup soup = BeautifulSoup(html) text = soup.get_text() print(text) 

¿Por qué ninguna respuesta he visto mencionar algo sobre el método de unwrap ? O, aún más fácil, el método get_text

http://www.crummy.com/software/BeautifulSoup/bs4/doc/#unwrap http://www.crummy.com/software/BeautifulSoup/bs4/doc/#get-text

Use get_text () , devuelve todo el texto en un documento o debajo de una etiqueta, como una sola cadena Unicode.

Por ejemplo, elimine todas las tags de script diferentes del siguiente texto:

 Signal et Communication 
Ingénierie Réseaux et Télécommunications

El resultado esperado es:

 Signal et Communication Ingénierie Réseaux et Télécommunications 

Aquí está el código fuente:

 #!/usr/bin/env python3 from bs4 import BeautifulSoup text = ''' Signal et Communication 
Ingénierie Réseaux et Télécommunications ''' soup = BeautifulSoup(text) print(soup.get_text())

Puedes usar el método de descomposición en bs4:

 soup = bs4.BeautifulSoup('I linked to example.com') for a in soup.find('a').children: if isinstance(a,bs4.element.Tag): a.decompose() print soup Out: I linked to  

Suponiendo que desea eliminar las tags, pero mantener el contenido, consulte la respuesta aceptada a esta pregunta: elimine una etiqueta con BeautifulSoup pero mantenga su contenido

¡Parece que esta es la manera de hacerlo! Tan sencillo como eso

Con esta línea, unirá todas las partes de texto dentro del elemento actual.

 ''.join(htmlelement.find(text=True))