Можно ли удалить теги script с помощью BeautifulSoup?

Можно ли удалить теги script и все их содержимое из HTML с помощью BeautifulSoup, или мне нужно использовать регулярные выражения или что-то еще?

Ответ 1

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

Ответ 3

Обновленный ответ для тех, кто может понадобиться для дальнейшего использования: Правильный ответ. decompose() Вы можете использовать разные способы, но decompose работает на месте.

Пример использования:

soup = BeautifulSoup('<p>This is a slimy text and <i> I am slimer</i></p>')
soup.i.decompose()
print str(soup)
#prints '<p>This is a slimy text and</p>'

Довольно полезно избавиться от детрита, например 'script', 'img' и т.д.