java - 如何从动态html页面获取值?

标签 java dynamic-html

我有一个旧的Java程序,用于从html页面获取数据,几年前运行良好,现在当我运行它时,没有数据。页面链接为:

http://www.batstrading.com/book/ibm/

我仍然可以看到从我的Java程序获取的html表,但是没有数据,但是如果你使用浏览器访问该页面,你可以看到数据动态变化,为什么?

我现在使用 Java 程序从页面获取的 html 文本就像您可以从浏览器的 View 源中看到的文本一样,如下所示:

    <tbody>
      <tr>
        <td class="shares">&nbsp;</td>
        <td class="price">&nbsp;</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/

相关文章:

javascript - 如何删除选择框的所有选项,然后添加一个选项并使用 jQuery 选择它?

javascript - 在 html 表中通过箭头键导航

javascript - 如何在 javascript 中将样式属性重置为其 CSS 默认值?

java - 如果属性具有特定值,则删除 XML 节点

java - 解压缩 png 文件时线程有时会阻塞

java - Thrift 版本之间的数据格式兼容性

html - 统一的 HTML 模板语言

java - Subclipse 安装和设置

java - Android正则表达式模式未封闭字符错误

javascript - 使用 AngularJS 解析 HTML 片段