【问题标题】:Extracting "hidden" HTML with Jsoup使用 Jsoup 提取“隐藏”HTML
【发布时间】:2015-11-24 15:43:48
【问题描述】:

我正在尝试获取未出现在源文档中但可以公开的 HTML 数据,例如,通过 Google Chrome 中的“检查元素”。

示例页面:http://assignment.uspto.gov/#/search?q=9000000&sort=patAssignorEarliestExDate%20desc%2C%20id%20desc&synonyms=false

行下方有许多包含美国专利号 9,000,000 的分配数据的 div 元素

<script async="async" type="text/javascript" src="https://components.uspto.gov/js/ais/2-2-assignment-search.js"></script>

有没有办法用 Jsoup 提取这个隐藏的 html?

【问题讨论】:

  • 我认为有可能使用 Selenium。 Jsoup 不支持 javascript
  • 如果有ajax调用来获取数据,那意味着数据通过HTTP或REST API暴露。您可以使用纯 HTTP 调用或 apache HTTPClient 来获取数据。无需使用jsoup处理。

标签: javascript java html jsoup


【解决方案1】:

数据似乎使用 AJAX 加载。 JSoup 不处理 Javascript。

您需要的是一个“无头浏览器”API,它处理 Javascript 而不实际呈现任何内容。

HtmlUnit 似乎是最著名的工具,尽管我自己从未使用过它。如前所述,Selenium Webdriver 也是一种选择。

我相信您将不得不加载 URL,等待所有 AJAX 处理,最终您将获得几乎与在 Java 中的 Chrome 中获得的解析树一样的解析树!

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      相关资源
      最近更新 更多