【问题标题】:Is there a Standard Java SE HTML Parser? If so, why use non-standard ones?有标准的 Java SE HTML 解析器吗?如果是这样,为什么要使用非标准的?
【发布时间】:2012-02-22 22:47:35
【问题描述】:

我需要解析一个包含简单表单的简单 HTML 页面。 StackOverflow 上类似问题的答案建议使用多种非标准 Java 库之一,例如 TagSoup、JSoup、HTMLParser 和许多其他库。

但是,网络搜索显示,Java SE 中存在一些通过此类的标准功能:http://docs.oracle.com/javase/7/docs/api/javax/swing/text/html/parser/ParserDelegator.html

我的子问题是:

  1. 标准的 ParserDelegator 类真的可以解析像我这样的用例吗?
  2. 标准库的哪些限制导致需要如此多的非标准库?
  3. ParserDelegator 在 Swing 中这一事实是否会排除在常规 EC2 云服务器中用于 Web 应用程序的情况?我是否必须跳过很多圈才能绕过无头方面,或者这只是对配置的一个小调整?
  4. 如果不推荐标准的,我应该使用哪个非标准的,考虑到:(a) 我希望不偏离标准; (b) 我的简单用例; (c) 渴望成熟可靠的实施; (d) 没有尺寸或重量限制,因为这是一个服务器应用程序,而不是嵌入式客户端。 API 的优先级要低得多,所以虽然我很欣赏 JSoup 的 CSS 选择器(如 API),但 (a) 到 (d) 的其他问题会覆盖它。

谢谢。

【问题讨论】:

  • 近距离投票者,请指出这是重复的内容(如果这是您近距离投票的原因)

标签: java html html-parsing html-parser


【解决方案1】:

JDK 有内置的 HTML 解析器,支持 HTML 1.0 左右。它应该支持解析基本文本格式标记和表单。

使用其他第三方解析器的原因是需要支持“真实”的 HTML 页面 DHTML、JavaScript 等。

JSoup 是可以完成这项工作的流行解析器之一。有关其他实现的更多信息,请查看以下讨论:

Pure Java HTML viewer/renderer for use in a Scrollable pane

【讨论】:

  • 谢谢 - 我会改写它有内置的解析器,除了 HTML 的古老版本之外不能处理任何东西。该链接没有帮助。它是关于查看器/渲染器的,而我需要一个解析器。
猜你喜欢
  • 2012-09-08
  • 2013-05-30
  • 1970-01-01
  • 2012-01-29
  • 2021-04-26
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 2011-09-08
相关资源
最近更新 更多