用于清理HTML的Java库就像浏览器一样

时间:2011-05-24 15:43:35

标签: java html html-parsing

所以这就是挑战......我需要在野外随机网页中创建干净的HTML。我的目标是在一个页面中读取并将其传递给一个库,这将反过来给我一个完美的HTML格式。

听起来不是那么厉害,对吧?毕竟,市场上的每个浏览器都能有效地应对格式错误的HTML的挑战,并将其转化为几乎每个页面加载都可渲染的东西。每个都有自己的略微特定的清理内容的算法(对于HTML< 5来说是这样的),但是他们倾向于非常好地捕捉我想要作为作者意图的内容。那么,为什么我不能为这项任务找到一个好的java库呢?

有一点需要提及的是,我根本不感兴趣将HTML解析为XML。我发现像NekoHTML,TagSoup,HtmlCleaner和JTidy这样的库(仅举几例)更侧重于解决将HTML转换为有效XML的问题,并且在此过程中,他们忽略了如何糟糕 - 格式化文档应重新构建。使用令人讨厌的HTML,他们经常不会捕获作者的意图并吐出与原始源完全不同的文档。对于这个项目来说,最重要的是两个文档的呈现方式相似。

我非常喜欢Jericho HTML,但它似乎并不是这项工作的理想人选...至少在我没有付出很多努力的情况下。此外,Native依赖项是不行的,因此mozilla解析器已经出局。

任何人都可以帮助我寻找完美的HTML解析器吗?提前谢谢!

3 个答案:

答案 0 :(得分:6)

答案 1 :(得分:1)

我过去曾使用HTML Tidy

答案 2 :(得分:0)

TagSoup