如何放纵地解析不严格的HTML文档?

时间:2009-09-24 17:55:32

标签: html parsing

我今天还有一个问题 是否有任何html解析器可用的语法分析器不严格? 据我所知,这种分析仪是在网络浏览器中构建的 我的意思是让一个解析器放纵地处理输入文档应该是非常好的,允许下列任何在xhtml和xml中无效的情况:

  • 不是自闭式单标签。例如:<br><hr> ...
  • 不匹配的套管对:<td> ... </TD>
  • 没有引号的属性:<span class=hilite>...</SPAN>
  • 等等......等等。

建议任何合适的解析器,请
谢谢

3 个答案:

答案 0 :(得分:2)

TagSoup适用于各种语言,包括Java,C++ (Taggle)XSLT (TSaxon)

  

... TagSoup,一个用Java编写的兼容SAX的解析器,它不是解析格式良好或有效的XML,而是解析在野外发现的HTML:糟糕,讨厌和野蛮,虽然通常远非短。 TagSoup专为那些必须使用某种理性应用程序设计来处理这些东西的人而设计。通过提供SAX接口,它允许将标准XML工具应用于最差的HTML。 TagSoup还包括一个命令行处理器,它可以读取HTML文件,并且可以生成干净的HTML或格式良好的XML,它与XHTML非常接近。

答案 1 :(得分:1)

如果您对Python感到满意,Beautiful Soup就是这样的解析器。

“你没有写那个糟糕的页面。你只是想从中获取一些数据。现在,你真的不关心HTML看起来是什么样的。这个解析器也没有。 。“

答案 2 :(得分:1)

如果你不害怕Ruby,那么Hpricot特别擅长解析破碎的标记。 http://github.com/whymirror/hpricot