用 java 解析大量 HTML

Parsing huge amount of HTML with java

将 HTML 传递给 Java 的最佳方法是什么?
具体来说,我需要抓取 2TB 的 HTML 文件(.warc 格式,使用 nutchWAX)并将它们一次一个地提供给我的 java 程序。

工作流程:

问题:我是否创建一个脚本来转义HTML中的所有特殊字符,然后将其作为参数传递,我是否将其写入文件并传递文件的路径还是有更好的方法(记住,2TB 的数据)?

我认为您应该从此页面寻找 html 个解析器:

Comparison of HTML parsers

创建脚本可能不是一个好主意。您可能已经有内联 css、javascript、转义引号。这样做会非常痛苦 correctly.Previously,我曾尝试编写脚本但发现了它 cumbersome.Finally,我尝试使用 html 解析器并且它非常有效!

你应该用 Jsoup 来做。

http://jsoup.org/

有了它,您可以轻松提取您想要的数据,例如 URL 或使用简单 API 的链接,您可以将它们提供给您的程序。也可以在多线程环境下使用,速度也相当快。

同时检查 this 答案,这将非常有帮助。

要比较 Java HTML 个解析器,请转到 here

针对您的问题:

Do I create a script to escape all special characters in HTML and then pass it on as an argument.

Jsoup 为您做这件事。不过,如果您只需要 HTML 文档的文本,则可能需要使用正则表达式。

do I write it to a file and pass the path of the file or is there a better way

是的,您可以将它作为字符串传递给您的程序。写入 2tb 的文件将非常低效。

请注意,无论您做什么,处理 2000gb 哦 HTML 都将花费很长时间!

希望这对您有所帮助。