用 Jsoup 提取 "hidden" HTML
Extracting "hidden" HTML with Jsoup
我正在尝试获取未出现在源文档中但可以公开的 HTML 数据,例如 "inspect element" 在 Google Chrome 中.
有许多 div 个元素包含 U.S 的分配数据。
行下方出现的专利号 9,000,000
<script async="async" type="text/javascript" src="https://components.uspto.gov/js/ais/2-2-assignment-search.js"></script>
有没有办法用 Jsoup 提取这个隐藏的 html?
数据似乎加载 AJAX。 JSoup 不处理 Javascript.
您需要的是 "headless browser" API,它处理 Java 脚本而不实际渲染任何内容。
HtmlUnit 似乎是最著名的工具,尽管我自己从未使用过它。如前所述,Selenium Webdriver 也是一个选项。
我相信你将不得不加载 URL,等待所有 AJAX 处理,你最终会得到与 Chrome 中几乎相同的解析树Java随心所欲!
如果这是您唯一需要的信息,这里是您要查找的信息的 JSON
url:
这是通过检查 Chrome 开发者工具的“网络”选项卡检索到的,您可以使用 HttpConnection
获取此 url 的内容。可以找到一个示例 here。获得 JSON
文件后,您可以解析它以检索您需要的任何信息。
我正在尝试获取未出现在源文档中但可以公开的 HTML 数据,例如 "inspect element" 在 Google Chrome 中.
有许多 div 个元素包含 U.S 的分配数据。
行下方出现的专利号 9,000,000<script async="async" type="text/javascript" src="https://components.uspto.gov/js/ais/2-2-assignment-search.js"></script>
有没有办法用 Jsoup 提取这个隐藏的 html?
数据似乎加载 AJAX。 JSoup 不处理 Javascript.
您需要的是 "headless browser" API,它处理 Java 脚本而不实际渲染任何内容。
HtmlUnit 似乎是最著名的工具,尽管我自己从未使用过它。如前所述,Selenium Webdriver 也是一个选项。
我相信你将不得不加载 URL,等待所有 AJAX 处理,你最终会得到与 Chrome 中几乎相同的解析树Java随心所欲!
如果这是您唯一需要的信息,这里是您要查找的信息的 JSON
url:
这是通过检查 Chrome 开发者工具的“网络”选项卡检索到的,您可以使用 HttpConnection
获取此 url 的内容。可以找到一个示例 here。获得 JSON
文件后,您可以解析它以检索您需要的任何信息。