如何使用BeautifulSoup去除HTML中的script和style标签?
我有一个简单的脚本,主要是获取一个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拼接起来,同时排除掉脚本和样式标签?
或者有没有更好的解决方案来实现我想要的效果?
1 个回答
9
unicode( soup )
这个命令会给你返回 HTML 代码。
另外,你想要的内容是这个:
for elem in soup.findAll(['script', 'style']):
elem.extract()