Получаете 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()