Избавить html от тегов script и style с помощью 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)

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

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


person Nathan    schedule 06.10.2010    source источник


Ответы (1)


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

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

for elem in soup.findAll(['script', 'style']):
    elem.extract()
person Jochen Ritzel    schedule 06.10.2010