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

2022-09-04 04:10:55

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

听起来不那么难,对吧?毕竟,市场上的每个浏览器都有效地应对了格式错误的HTML的挑战,并将其转化为几乎每个页面加载时都可以呈现的东西。每个都有自己稍微特殊的算法来清理内容(哎呀...对于HTML<5),但它们往往在捕获我喜欢称之为作者意图的内容方面做得很好。那么,为什么我找不到一个好的java库来完成这个任务呢?

值得一提的是,我对将HTML解析为XML根本不感兴趣。我发现像NekoHTML,TagSoup,HtmlCleaner和JTidy(仅举几例)这样的库更专注于解决将HTML转换为有效XML的问题,在这个过程中,他们忽略了格式不佳的文档应该如何重新构建。对于讨厌的HTML,他们通常不会捕捉到作者的意图,并吐出与原始来源完全不同的呈现文档。对于这个项目来说,这两个文档以类似的方式呈现是至关重要的。

我非常喜欢Jericho HTML,但它似乎不是这份工作的理想人选......至少我没有付出很多努力。此外,原生依赖关系是行不通的,所以mozilla解析器已经出来了。

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


答案 1

JSoup我会说

另请参见


答案 2

我过去使用过HTML Tidy