2011-05-24 21 views
14

因此,这里面临的挑战......我需要从随机网页中创建干净的HTML。我的目标是阅读一个页面并将其传递给一个图书馆,这个图书馆又可以让我回到完美的格式化HTML。用于清理HTML的Java库就像浏览器一样

听起来不那么难,对不对?毕竟,市场上的每一款浏览器都能有效地应对格式错误的HTML的挑战,并将其转化为几乎每一页加载的渲染功能。每个人都有自己的清理内容的稍微特别的算法(就像...),但他们往往做的非常好,能捕捉到我喜欢作为作者意图的内容。那么,为什么我不能为这个任务找到一个好的java库?

有一点要提到的是,我并不想把XML解析为XML。我发现诸如NekoHTML,TagSoup,HtmlCleaner和JTidy(仅举几例)等库更专注于解决将HTML转换为有效的XML的问题,并且在这个过程中,他们忽略了这些糟糕的特性,格式化的文件应该重新构建。由于讨厌的HTML,他们经常无法捕捉作者的意图,并且吐出与原始来源完全不同的文档。而对于这个项目来说,这两个文件的渲染是相当重要的。

我很喜欢杰里科的HTML,但它似乎不是这份工作的理想人选......至少在我没有付出很多努力的情况下。此外,本地依赖是一个不行,所以mozilla解析器已经不存在了。

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

+1

给我定义格式不正确的HTML ...你一般是指适当的缩进还是只是格式不正确的HTML。后者的范围要大得多。 – 2011-05-24 15:48:12

+0

我们肯定在说后者。对于这个项目,我必须拉入一个网页,应用一些转换,然后将结果显示给用户。如果格式/布局与预处理的HTML格式明显不同,那我就麻烦了。 – stevevls 2011-05-24 15:52:02

回答

6

JSoup我想说

请参见

+0

感谢您提供其他问题的链接。我以前见过那个,并追查了一些链接,尽管我留下的结论是我的问题稍有不同。我现在正在评估JSoup,它看起来非常有前途。我之前已经跳过了B/C这个名字和TagSoup非常接近,我认为它们是一样的。 ;) – stevevls 2011-05-24 16:50:30

+2

经过一天的使用,我可以正式说这个图书馆是岩石。非常感谢! – stevevls 2011-05-25 16:00:53

+0

是的,它真的很好:)你欢迎 – 2011-05-25 16:02:08

0

TagSoup

+1

谢谢,但不幸的是,图书馆陷入“让我们把HTML变成XML”的阵营。我已经对它进行了评估并抛出了它,它给了我HTML的呈现方式不同于源代码。 – stevevls 2011-05-24 18:20:56

1

我以前用过HTML Tidy

+0

呵呵......看起来他们在2009年第一次发布了一个版本,这是8年来的第一次。过去我也用过Tidy,但即使那样我也不知所措。也许大约五年前,我开始了一个项目(这次我正在解析HTML - > XML),最后使用了NekoHTML(现在也已经死了)。 – stevevls 2011-05-24 18:26:04

相关问题