2010-10-06 85 views
7

我有一个简单的脚本,用于获取HTML页面,将它传递给BeautifulSoup以删除所有脚本和样式标记,然后我想将HTML结果传递给另一个方法。是否有捷径可寻?浏览BeautifulSoup.py,我还没有看到它。使用BeautifulSoup获取HTML文件的脚本和样式标签?

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重新排列在一起,不包括脚本&样式标记?

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

回答

8

unicode(soup)给你的HTML。

而且你要的是这样的:

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

哈。很简单。谢谢! – Nathan 2010-10-06 16:19:05

+0

美丽的sopaa – Yarin 2012-03-16 02:16:52

相关问题