Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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/XML解析器_Java_Html_Xml_Dom_Parsing - Fatal编程技术网

用于Java的HTML/XML解析器

用于Java的HTML/XML解析器,java,html,xml,dom,parsing,Java,Html,Xml,Dom,Parsing,哪些HTML解析器具有以下功能: 快速 线程安全 可靠且无缺陷 解析HTML和XML 处理错误的HTML 有一个DOM实现 支持HTML4、JavaScript和CSS标记 相对简单、面向对象的API 你认为什么更好 谢谢。最著名的是和 NekoHTML是基于Xerces的,它提供了一个实现JavaSE接口的简单接口 JTidy更倾向于将html代码格式化为XML有效的内容,但作为XML解析器仍然非常有用,如果需要,可以生成DOM树 你可以看看其他的选择 另一种选择是通过jRuby使用。好的

哪些HTML解析器具有以下功能:

  • 快速
  • 线程安全
  • 可靠且无缺陷
  • 解析HTML和XML
  • 处理错误的HTML
  • 有一个DOM实现
  • 支持HTML4、JavaScript和CSS标记
  • 相对简单、面向对象的API
你认为什么更好

谢谢。

最著名的是和

NekoHTML是基于Xerces的,它提供了一个实现JavaSE接口的简单接口

JTidy更倾向于将html代码格式化为XML有效的内容,但作为XML解析器仍然非常有用,如果需要,可以生成DOM树

你可以看看其他的选择

另一种选择是通过jRuby使用。

好的:

java中没有您需要的那么多好的HTML解析器,但这里有一些替代方案:


很少有人支持Javascript。事实上,我认为您必须使用Rhino()自己完成这一部分。

我认为这正是您需要的。在服务器端查看它与JTidy、TagSoup、NekoHtml的比较。

您可能想看看如何在无头模式下运行Mozilla。以下是一个让您开始学习的方法,我相信您可以使用谷歌查找更多信息。

查看。它既是一个你可以使用的库,也是一个数据提取工具,我觉得这正是你想要做的。您可以创建XML脚本文件来指示scraper如何提取所需信息以及从何处提取信息。提供的GUI对于快速测试脚本非常有用

查看,看看它是否适合您正在尝试的工作。

,当然。这是HTML5解析算法的一个实现,GECKO正在用它的C++翻译替换自己的HTML解析器。Apache最近从现有项目中提取了许多子项目,并将其公开。Tika是其中之一,它以前是ApacheLucene的一个组件。由于Apache的支持和声誉以及广泛使用的父项目Lucene,它一定是一个非常好的选择。此外,它是开源的

Apache Tika网站的简要介绍:

阿帕奇提卡酒店™ 工具箱使用现有的解析器库从各种文档中检测和提取元数据和结构化文本内容

支持的格式包括:


为什么?它们有哪些特性?SAX不是我想要的,JTidy的主要目的是清理XML。你确定它比别人做得更好吗?那么你到底想要什么?它应该是基于DOM的。我想要提取,因为它是主要工作,而不是转换。它的“主要”工作是什么并不重要,只要它做你想让它做的事情。你说的“支持HTML4、javascript和CSS”是什么意思?解析器就是,它不会解释你的页面。如果您想模拟浏览器,请重新表述您的问题。否。有些解析器不理解CSS之类的东西。这就是我的意思。如果CSS在标记中,它将被解释为文本,但这也是为了转换成XML。我的主要目标是从中提取数据。@Shayan那又怎样?它不允许您从中提取数据吗?它不提供DOM操作吗?它不允许解析讨厌的HTML吗?我不明白你的意思。Web收获+1——如果你想做页面抓取,那就是最好的选择。ApacheTika是一个很好的建议。即使您对阅读XML/HTML/MS文档格式不感兴趣,也可以指定“text/plain”。它将在数据流中传输,因此不需要先预加载整个文件。优点列表:文章和示例代码:我是为了一个可靠的HTML解析器而来的,剩下的是一个我不必花时间来概括的解析器。我喜欢这个游戏。
HyperText Markup Language
XML and derived formats
Microsoft Office document formats
OpenDocument Format
Portable Document Format
Electronic Publication Format
Rich Text Format
Compression and packaging formats
Text formats
Audio formats
Image formats
Video formats
Java class files and archives
The mbox format