2 个回答

0

你这样做是不对的(tm)。

BeautifulSoup 并不是用来这样使用的。

你可以看看这个链接:http://code.activestate.com/recipes/52281-strip-tags-and-javascript-from-html-page-leaving-o/

这个方法可以去掉无效的标签,而你听起来是想保留这些标签,只是想让它们变得安全一些。这个修改应该很简单。

1

我根据这个答案,用html5lib找到了这个解决办法。下面是我最终得到的代码,它和我最开始用BeautifulSoup写的代码做的事情一样,只不过它能正确处理我之前提到的<integer>的情况:

p = html5lib.HTMLParser(tokenizer=sanitizer.HTMLSanitizer, tree=treebuilders.getTreeBuilder("dom"))
dom_tree = p.parseFragment(value)
walker = treewalkers.getTreeWalker("dom")
stream = walker(dom_tree)
s = serializer.htmlserializer.HTMLSerializer(quote_attr_values=True)
return s.render(stream)

感谢所有帮助过我的人。

撰写回答