可靠地解析HTML是一个相对较新的开发(尽管看起来有些奇怪)。因此,标准库中绝对没有任何内容。HTMLParser的可能 似乎 是处理HTML的方式,但它不是- 它不能在很多非常普通的HTML的,虽然可以解决这些故障总会有你有没有想过的另一种情况(如果你真的成功在处理所有故障时,您基本上都会重新创建BeautifulSoup)。
实际上,只有3种合理的方法可以解析HTML(在Web上可以找到):lxml.html,BeautifulSoup和html5lib。lxml是目前为止最快的,但安装起来有点棘手(在App Engine这样的环境中是不可能的)。html5lib基于HTML 5指定解析的方式;尽管在实践上与其他两个类似,但在解析损坏的HTML的方式上可能更“正确”(它们都对相同的HTML进行相同的解析)。它们在解析损坏的HTML方面都做得不错。尽管我发现它的API不必要地古怪,但是BeautifulSoup可以很方便。