¿Puedo eliminar las tags de script con BeautifulSoup?

¿Las tags de script y todos sus contenidos pueden eliminarse de HTML con BeautifulSoup, o tengo que usar expresiones regulares o algo más?

>>> from bs4 import BeautifulSoup >>> soup = BeautifulSoup('baba', 'lxml') >>> [s.extract() for s in soup('script')] >>> soup baba 

Respuesta actualizada para aquellos que puedan necesitar para referencia futura: La respuesta correcta es. decompose() Puedes usar diferentes formas pero decompose trabajos en el lugar.

Ejemplo de uso:

 soup = BeautifulSoup('

This is a slimy text and I am slimer

') soup.i.decompose() print str(soup) #prints '

This is a slimy text and

'

Bastante útil para deshacerse de detritus como ‘script’, ‘img’ y así sucesivamente.

Como se indica en la ( documentación oficial ), puede utilizar el método de extract para eliminar todo el subárbol que coincida con la búsqueda.

 import BeautifulSoup a = BeautifulSoup.BeautifulSoup("") [x.extract() for x in a.findAll('script')]