8

我有一个简单的脚本,我在其中获取 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 只是获取一个列表,并且所有内容都在类中定义。有没有一种方法可以在soup 操作后只返回原始html?还是我只需要浏览contents列表并将 html 拼凑在一起,不包括脚本和样式标签?

还是有更好的解决方案来完成我想要的?

4

1 回答 1

9

unicode( soup )给你html。

你想要的是这个:

for elem in soup.findAll(['script', 'style']):
    elem.extract()
于 2010-10-06T16:16:00.967 回答