我有一个旧的Java程序,用于从html页面获取数据,几年前处理罚款,现在当我运行它时,没有数据。页面链接是:
http://www.batstrading.com/book/ibm/
我仍然可以看到html表来自我的Java程序,但是没有数据,但如果你使用浏览器进入该页面,你可以看到数据动态变化,为什么?
我现在使用我的Java程序从页面获取的html文本就像您可以从浏览器的视图源看到的文本,如下所示:
<tbody>
<tr>
<td class="shares"> </td>
<td class="price"> </td>
</tr>
而不是数据,它显示
如何修复我的代码以获取数据?我的意思是:Java程序没有任何问题,它使文本像浏览器的视图源一样,你没有看到数据,因为页面现在是动态的,所以如何使用Java从中获取数据动态页面是个问题。
答案 0 :(得分:2)
自从网站通过Javascript更新后,废弃当前的方法。您无法下载HTML并使其正常工作。
但是,比使用Selenium或JS引擎更简单的方法是简单地请求Javascript用于更新页面的源数据:
http://www.batstrading.com/json/bzx/book/IBM
它是完全有效的JSON。请求与您的HTTP客户端链接并使用Jackson解析JSON。这将产生非常可靠的结果。
免责声明您需要确保您所做的工作符合您所使用的网站上的服务条款。否则你会遇到法律问题。
答案 1 :(得分:0)