Получение html без тегов сценария и стиля с BeautifulSoup? - PullRequest
7 голосов
/ 06 октября 2010

У меня есть простой скрипт, где я извлекаю 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 = soup.html.contents, просто получает список, и все там определяется в классах. Есть ли метод, который просто возвращает сырой HTML после того, как суп манипулирует им? Или мне просто нужно просмотреть список contents и собрать html обратно, исключая теги script и style?

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

1 Ответ

8 голосов
/ 06 октября 2010

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

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

for elem in soup.findAll(['script', 'style']):
    elem.extract()
...