Java程序从网站读取信息

时间:2015-03-28 21:35:34

标签: java parsing

我正在编写一个Java程序,可以帮助跟踪一个" Fantasy College Basketball"我的朋友联盟。我正在努力寻找最佳实现来自动更新每个选秀球员的统计数据。

作为一些背景,每天幻想联盟中的个人根据他们所选择的大学篮球运动员在那周获得的统计数据来获得积分。现在,我这样做:

1:转到玩家的ESPN资料

ESPN使用基于随机且唯一的玩家ID号的URL跟踪各个玩家统计数据。 Frank Kaminsky的ID是56759,所以他的ESPN简介是:http://espn.go.com/mens-college-basketball/player/_/id/56769/。我们可以假设用户在起草玩家时会输入玩家的ESPN ID,我们会在更新统计数据时获得该信息。

2:解析HTML页面以获取相关统计信息

查看上面的网址 - 重要信息位于" 2014 - 2015年游戏日志"部分。我想获得最新游戏的PTS,REB,AST,BLK,STL,PF和TO,以便在我的程序中使用。

最佳方法是什么?

我的第一反应是在URL上使用.openStream(),但这需要大量仔细的字符串解析。 HTML确实不是一行一行......

我听说过jsoup,但以前没有用过它。如果这里的人认为这是最好的方法,我很乐意学习如何使用它。

2 个答案:

答案 0 :(得分:1)

使用Jsoup,它很容易学习并为工作做好准备。

JSoup网站有一个很好的教程。

看看这里:http://jsoup.org/cookbook/input/load-document-from-url

然后使用此处说明的方法解析您的文档:http://jsoup.org/cookbook/extracting-data/selector-syntax

答案 1 :(得分:0)

我会推荐http://www.seleniumhq.org/ 这是一个外部库,但它非常易于使用和学习。通常它用于测试网站,但它确实是多用途的。

Driver driver = new ChromeDriver();
driver.get("http://yoursitehere.iamnotarealsite");

这将是打开Chrome浏览器并导航到您的网站的代码。要查找元素,您可以执行以下操作:

WebElement stats=driver.findElement(By.cssSelector("div#statsOrSomething"));

您可以在WebElements上使用标准的get text函数:

stats.getText();//Gets players stats

我是否也提到它有许多语言绑定,包括Java?另外:我不为硒或其母公司工作,所以这不是一个无耻的插件。