【问题标题】:Parsing HTML webpages in Java用 Java 解析 HTML 网页
【发布时间】:2011-07-14 02:49:18
【问题描述】:

我需要为特定内容(几行几乎相同的文本)解析/读取大量 HTML 网页(100 多个)。

我将扫描仪对象与 reg 一起使用。表达式和 jsoup 及其 html 解析器。

这两种方法都很慢,使用 jsoup 我得到以下错误: java.net.SocketTimeoutException: 读取超时(不同连接的多台计算机)

还有什么更好的吗?

编辑:

现在我已经让 jsoup 工作了,我认为一个更好的问题是如何加快它的速度?

【问题讨论】:

  • Jsoup 支持 DOM 遍历和 [CSS] 选择器,不是吗? (为什么要使用正则表达式?:-/)

标签: java html parsing jsoup


【解决方案1】:

您是否尝试过延长 JSoup 的超时时间?我相信默认情况下只有 3 秒。参见例如this

【讨论】:

  • 谢谢。我让jsoup代码工作了。它的运行时间为 2 分钟。
【解决方案2】:

我会推荐Nutch,这是一个开源网络搜索解决方案,包括对 HTML 解析的支持。这是一个非常成熟的图书馆。它在底层使用了 Lucene,我发现它是一个非常可靠的爬虫。

【讨论】:

  • Jericho 也是一个不错的选择。我用过 Nutch 和 Jericho,但没有使用 JSoup 的经验,所以无法评论为什么要花这么长时间。
【解决方案3】:

xpath 是一个很好的学习技能。这将是完美的工作!我刚开始自己​​学习它以进行自动化测试。如果您有任何问题,请给我留言。尽管我不是专家,但我很乐意为您提供帮助。

这是一个不错的链接,因为您对 Java 感兴趣: http://www.ibm.com/developerworks/library/x-javaxpathapi/index.html

当你不使用 Java 时,知道 xpath 也是一件好事,所以这就是我选择这条路线的原因。

【讨论】:

  • 除了... HTML 不是 XML。如果还包含指向通过 XPath 公开 HTML 的库的链接,我怀疑这篇文章 不会 收到反对票(不是我的)。 (此类工具能够将 HTML“视为”XML DOM,绝对值得一提。)
  • XPath 用于 XML,并且不适用于任何与 XML 不兼容的 HTML。
  • @Mr.是的,那么 Java 库解析 HTML(不仅仅是 XML)并在其上公开 XPath? :) 这个答案还不错,但它缺少一些重要的难题。 (请注意,问题被标记的jsoup 支持 CSS 选择器,但不支持 XPath——它看起来像this feature is requested
  • 这是一个使用 XOM 和 TagSoup 在 HTML 中查找元素的示例 - stackoverflow.com/questions/773340/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
  • 2013-01-12
  • 2016-07-02
  • 2011-06-13
  • 1970-01-01
  • 1970-01-01
  • 2012-02-22
相关资源
最近更新 更多