我有一个旧的Java程序,用于从html页面获取数据,几年前运行良好,现在当我运行它时,没有数据。页面链接为:
http://www.batstrading.com/book/ibm/
我仍然可以看到从我的Java程序获取的html表,但是没有数据,但是如果你使用浏览器访问该页面,你可以看到数据动态变化,为什么?
我现在使用 Java 程序从页面获取的 html 文本就像您可以从浏览器的 View 源中看到的文本一样,如下所示:
<tbody>
<tr>
<td class="shares"> </td>
<td class="price"> </td>
</tr>
它显示的不是数据,而是
如何修复我的代码以获取数据?我的意思是:Java程序没有任何问题,它获取文本就像浏览器查看源代码一样,你看不到数据,因为页面现在是动态的,那么如何使用Java从a中获取数据动态页面就是问题所在。
最佳答案
废弃当前方法,因为该网站是通过 Javascript 更新的。您将无法仅下载 HTML 并使其正常工作。
但是,一种更简单的方法(比使用 Selenium 或 JS 引擎)是简单地请求 Javascript 用于更新页面的源数据:
http://www.batstrading.com/json/bzx/book/IBM
这是完全有效的 JSON。请求与您的 HTTP 客户端链接并使用 Jackson 解析 JSON。这将产生非常可靠的结果。
免责声明您需要确保您所做的事情符合您所使用的网站的服务条款。否则您将面临法律问题。
关于java - 如何从动态html页面获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17597864/