用java解析大量的HTML

时间:2015-04-28 10:34:31

标签: java html nutch

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

工作流程:

  • 抓取页面
  • 将页面发送到java程序
  • 等待回答,然后继续抓取

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

2 个答案:

答案 0 :(得分:1)

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

Comparison of HTML parsers

创建脚本可能不是一个好主意。你可能已经有内联css,javascript,转义引号。正确地做这件事将是一个巨大的痛苦。以前,我曾尝试编写脚本但发现它很麻烦。最后,我尝试使用html解析器,它就像一个魅力!

答案 1 :(得分:0)

你应该用Jsoup。

http://jsoup.org/

有了它,您可以轻松地使用简单的API提取所需的数据,例如URL或链接,并且可以将它们提供给您的程序。它也可以在多线程环境中使用,而且速度也很快。

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

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

对于你的问题:

  

我是否创建了一个脚本来转义HTML中的所有特殊字符,然后将其作为参数传递。

Jsoup为你做这件事。如果你想要的只是HTML文档的文本,你可能想要使用正则表达式。

  

我是将它写入文件并传递文件的路径还是有更好的方法

是的,您可以将其作为字符串传递给您的程序。写2tb的文件会非常缺乏。

请注意,无论你做什么,处理2000gb的HTML都需要花费很长时间!

希望这有帮助。