Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java库,用于像浏览器一样清理HTML_Java_Html_Html Parsing - Fatal编程技术网

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

Java库,用于像浏览器一样清理HTML,java,html,html-parsing,Java,Html,Html Parsing,这就是挑战。。。我需要从野外的随机网页中创建干净的HTML。我的目标是读入一个页面并将其传递给一个库,该库将反过来返回格式完美的HTML 听起来没那么难吧?毕竟,市场上的每一款浏览器都有效地应对了格式错误的HTML的挑战,并将其转化为几乎每一次页面加载都可以呈现的内容。每种方法都有自己的清理内容的算法(嗯……对于HTMLXML),最终使用了NekoHTML(现在也有点死了)。

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

听起来没那么难吧?毕竟,市场上的每一款浏览器都有效地应对了格式错误的HTML的挑战,并将其转化为几乎每一次页面加载都可以呈现的内容。每种方法都有自己的清理内容的算法(嗯……对于HTML<5),但它们往往能很好地捕捉到我所说的作者的意图。那么,为什么我不能为这项任务找到一个好的java库呢

要提到的一点是,我对将HTML解析为XML一点也不感兴趣。我发现NekoHTML、TagSoup、HtmlCleaner和JTidy(仅举几例)等库更专注于解决将HTML转换为有效XML的问题,在这一过程中,它们忽略了格式不良的文档应该如何重新构造。对于令人讨厌的HTML,它们通常无法捕捉作者的意图,并且会吐出呈现方式与原始源完全不同的文档。对于这个项目来说,这两个文件的相似性至关重要

我很喜欢Jericho HTML,但它似乎不是这份工作的理想人选……至少我需要付出很多努力。而且,本机依赖项是不可能的,因此mozilla解析器已经过时了

有人能帮我寻找完美的HTML解析器吗?提前谢谢

我会说

另请参见


我过去用过。

给我定义格式不好的HTML。。。你指的是正确的缩进还是格式不正确的HTML。后者的范围要大得多。我们肯定是在谈论后者。对于这个项目,我必须拉入一个网页,应用一些转换,然后将结果显示给用户。如果格式/布局与预处理的HTML明显不同,我就有麻烦了。感谢您提供指向其他问题的链接。我以前看过这篇文章,并找到了一些链接,尽管我离开时得出的结论是,我这里的问题略有不同。我现在正在评估JSoup,它看起来非常有希望。我之前跳过了它b/c的名字是如此接近TagSoup,我认为他们是一样的经过一天的使用,我可以正式地说,这个图书馆的岩石。非常感谢!谢谢,但不幸的是,该库落入了“让我们将HTML转换为XML”的阵营。我已经对它进行了评估,并将其扔掉了b/c。它给我的HTML呈现方式与源代码不同。嗯……看起来他们在2009年发布了一个版本,这是8年来的第一次。我过去也用过Tidy,但即使在那时我也没什么信心。大约五年前,我开始了一个项目(这次我在解析HTML->XML),最终使用了NekoHTML(现在也有点死了)。