【发布时间】:2011-09-01 01:39:06
【问题描述】:
所以挑战来了...我需要从野外的随机网页创建干净的 HTML。我的目标是读入一个页面并将其传递给一个库,这反过来又会给我返回格式完美的 HTML。
听起来没那么难,对吧?毕竟,市场上的每个浏览器都有效地应对了格式错误的 HTML 的挑战,并将其转化为几乎可以在每次页面加载时呈现的内容。每个都有自己的用于清理内容的稍微特殊的算法(嗯……对于 HTML
要提一提的是,我对将 HTML 解析为 XML 一点也不感兴趣。我发现 NekoHTML、TagSoup、HtmlCleaner 和 JTidy(仅举几例)等库更专注于解决将 HTML 转换为有效 XML 的问题,并且在此过程中,他们忽略了糟糕的格式化的文档应该重新构造。对于讨厌的 HTML,它们经常无法捕捉作者的意图,并吐出呈现与原始源完全不同的文档。对于这个项目,最重要的是两个文档呈现相似。
我非常喜欢 Jericho HTML,但它似乎不是这份工作的理想人选……至少我付出了很多努力。另外,原生依赖是不行的,所以 mozilla 解析器已经出局了。
谁能帮助我寻找完美的 HTML 解析器?提前致谢!
【问题讨论】:
-
向我定义格式错误的 HTML...您指的是正确的缩进还是一般的格式错误的 HTML。后者的范围要大得多。
-
我们肯定说的是后者。对于这个项目,我必须拉入一个网页,应用一些转换,然后将结果显示给用户。如果格式/布局与预处理的 HTML 明显不同,我就有麻烦了。
标签: java html html-parsing