擅长:python、mysql、java
<p>可靠地解析HTML是一个相对现代的开发(尽管看起来很奇怪)。因此,标准库中肯定没有任何内容。<a href="http://docs.python.org/library/htmlparser.html" rel="noreferrer">HTMLParser</a>可能<em>看起来</em>是一种处理HTML的方法,但事实并非如此——它在许多非常常见的HTML上都失败了,尽管您可以处理这些失败,但总会有另一个您没有想到的情况(如果您真的成功地处理了每一个失败,您将基本上重新创建BeautifulSoup)。</p>
<p>真正合理的解析HTML的方法只有3种(在web上可以找到):<a href="http://codespeak.net/lxml//lxmlhtml.html" rel="noreferrer">lxml.html</a>、<a href="http://www.crummy.com/software/BeautifulSoup/" rel="noreferrer">BeautifulSoup</a>和<a href="http://code.google.com/p/html5lib/" rel="noreferrer">html5lib</a>。到目前为止,lxml是速度最快的,但安装起来可能有点棘手(在App Engine这样的环境中是不可能的)。html5lib是基于HTML 5如何指定解析的;尽管在实践中与其他两个类似,但它解析断开的HTML的方式可能更“正确”(它们都解析非常好的HTML相同)。它们都在解析损坏的HTML方面做了相当出色的工作。虽然我发现它的API不必要地古怪,但BeautifulSoup可能很方便。</p>