无法在Java中阅读HTML

时间:2013-08-08 08:10:36

标签: java html firefox

我是一名学生,希望在暑假期间享受一些乐趣。有一个名为www.saltybet.com的网站,其中一个格斗游戏由两个AI播放。玩家可以在结果上打假钱。

我想用Java创建一个软件,在MySQL数据库中存储游戏中遇到的所有匹配项,然后根据之前的结果下注。要做到这一点,第一步是阅读两个AI玩家的名字。

现在,当我在Firefox中突出显示其中一个字符名称(右下角和左下角),并检查网站的来源时,它会出现如下:

<div class="left">
    <span id="p1name" class="redtext">Lobo</span><br><br />
    <span class="field" id="player1wager">$2484343</span><br />
</div>

但是,当我选择查看整个页面源时,它会出现如下:

<div class="left">
    <span id="p1name" class="redtext">Player 1</span><br/><br />
    <span class="field" id="player1wager">$0</span><br />
</div>

请注意,“Lobo”已更改为“播放器1”。现在,我知道如何将网站的HTML代码读入Java。但是,我不断获得“玩家1”和“玩家2”而不是角色名称。有没有人知道如何从页面源中获取正确的播放器名称?

2 个答案:

答案 0 :(得分:2)

您无需在Java中阅读此页面的HTML。通过查看源代码,该网站通过AJAX从文件中获取其数据:

http://www.saltybet.com/betdata.json

经常更新。示例内容:

{"p1name":"The atom","p2name":"Sponge bob","p1total":"0","p2total":"0","status":"open","alert":""}

只需下载此文件并使用JSON java库将内容转换为对象:

答案 1 :(得分:1)

页面打开时,代码Javascript正在更新字段。如果您想继续使用Java编程,这会让事情变得困难,但是这里有一些关于您可以做什么的建议:

  • 看看像Selenium这样的东西 - 我自己并不熟悉它,但它允许网页自动化,可以作为Firefox插件运行。这可能有所帮助,因为如果您在Web浏览器中打开页面,它将允许Javascript执行。
  • 弄清楚页面上的Javascript是如何工作的。这可能很难,但也许您可以了解他们如何向服务器查询以获取播放器名称,这将使您的项目更容易。