Получаете html без тегов сценариев и стилей с BeautifulSoup?

У меня есть простой скрипт, где я извлекаю страницу HTML, передаю ее в BeautifulSoup, чтобы удалить все теги скрипта и стиля, а затем хочу передать результат HTML другому методу. Есть простой способ сделать это? Просматривая BeautifulSoup.py, я еще не видел его.

soup = BeautifulSoup(html)
for script in soup("script"):
    soup.script.extract()

for style in soup("style"):
    soup.style.extract()
contents = soup.html.contents
text = loader.extract_text(contents)

content = soup.html.contents просто получает список, и все там определяется в классах. Есть ли метод, который просто возвращает сырой HTML после того, как суп манипулирует им? Или мне просто нужно пройти через contents перечислить и собрать html обратно вместе, за исключением тегов script и style?

Или есть еще лучшее решение для достижения того, чего я хочу?

1 ответ

Решение

unicode( soup ) дает вам HTML.

Также то, что вы хотите, это:

for elem in soup.findAll(['script', 'style']):
    elem.extract()
Другие вопросы по тегам