如何在 Google Gadget 中显示击球统计数据
来源:互联网 发布:淘宝店铺卖点怎么写 编辑:程序博客网 时间:2024/06/04 18:15
在本文中,我们通过编写有趣的棒球击球记录程序程序展示了如何使用这三个 Google Code API。本文的编排以及应用程序代码的灵感均来自 Joseph Adler 的杰作 Baseball Hacks(参见 参考资料)。我们使用了三个 Google Code API:Google Chart API、Google Spreadsheets Data API 和Google Gadgets API。我们不打算详尽介绍这些 API,但希望我们的介绍恰到好处,能激起您的兴趣。更详细的内容可以参考Google 文档和教程。我们的目的是构建一个 Google Gadget来显示美国棒球联盟球队的最新击球数据。为实现此目的,我们需要以下三个步骤。
首先,从一个棒球网站下载当前的棒球数据并将这些数据存储于以逗号分隔的文本文件。其次,使用 Google Spreadsheets Data API 将这些数据上传到 Google电子数据表。第三,编写一个 Google Gadget 来从此电子数据表读取这些数据并利用 Google Chart API以条形图显示这些数据。
回页首
从 Web 上获取数据
第一步是下载数据。我们的代码基于 Baseball Hacks 中的 “Hack #25: Spider Baseball Sites for Data”。我们在本文中不打算详细介绍它,因为在此书中已有很多的解释。(我们的代码存于 get_all_teams_hitting.pl
Perl 程序和 GetStats.pm
Perl 模块,均包括在本文的 示例代码下载 中)。但有以下几点值得一提。
首先,虽然针对比赛结果(即积分表)的 RSS 和 Atom 提要有很多,但针对实时的球员积分数据的 RSS 和 Atom提要好像没有。如果有的话,就需要从这些 Web 提要中获取数据。然而,我们却不得不从 HTML页面获取数据。这样做不是很好,而且不可靠。比如,如果 HTML的格式突然变了,代码很容易崩溃。第二点是在没有得到站点主人的同意之前不要从其站点获取数据。请先查看站点的“使用条款”。第三,如果可以从该站点获取数据,也不要太过分。在连续对页面进行单击的空隙间,请留出一两秒的停顿。这不仅是个礼貌之举,而且,如果不这么做,您很可能会被拒之站外。(我们进行了测试,没有停顿的代码会遭到拒绝)。
回页首
以编程的方式向 Google 电子数据表上传数据
我们或取 HTML 页、下载数据并将其存储在以逗号分隔的各个文本文件中,每个队一个文件,我们希望将这些数据存储在一个 Google电子数据表中以供 Google Gadget 随后访问。Google Spreadsheets Data API让您能够按行或按单元格添加、更改和删除 Google 电子数据表的内容。Google Spreadsheet Data API 对Java™、.NET、PHP 和 Python 都可用。我们使用的是 Python,因为我们更喜欢它。
在 清单 1 中,Python 代码循环遍历这组以逗号分隔的文本文件,然后调用向电子数据表上传数据的代码。(我们还使用了另一个数据文件 MLBTeams.csv
,其中包含了这些球队的列表)。
清单 1. upload_all_teams_hitting.py 的片段
mlb_teams = open('../../data/MLBTeams.csv')
try:
lines = mlb_teams.readlines( );
finally:
mlb_teams.close( )
# Skip header.
for line in lines[1:]:
line = line.rstrip();
if line != '':
parts = line.split(",")
curr_wksht_id = parts[1].rstrip()
teamAbbrev = parts[0].rstrip()
print "Updating: " + teamAbbrev
infile = "../../tempData/" + teamAbbrev + "Hitting.txt"
uploader = Uploader(user, pw, infile)
if curr_key != '':
uploader.set_spreadsheet(curr_key)
if curr_wksht_id != '':
uploader.set_worksheet(curr_wksht_id)
uploader.prompt_delete_old_rows_and_add_new_rows()
以编程的方式与 Google 电子数据表交互的方式有两种:基于行的提要和基于单元格的提要。在这个应用程序中,由于我们通常都只按行删除旧数据并按行添加新数据,所以我们主要使用基于行的提要。
下面是我们使用的 gdata.spreadsheet
方法和字段:
本文转自IBM Developerworks中国
请点击此处查看全文
- 如何在 Google Gadget 中显示击球统计数据
- MySQL中如何按月统计数据
- 在Winform中显示Google地图
- 在Google搜索中显示原始地址
- 在Google地图中显示行政区边界
- 测试 Google Gadget
- google gadget学习
- google gadget 开发 参考资料
- Pandas日期数据处理:如何按日期筛选、显示及统计数据
- Pandas日期数据处理:如何按日期筛选、显示及统计数据
- 如何在google地图中获得经纬度
- 浅议如何从统计数据中不断优化SEO效果
- 在VS2005中安装使用Gadget模板(三)
- Creating a Google Data Gadget
- Google Adsense: 在自己的网站中显示搜索结果
- BMP的图像在Google浏览器中不能显示
- 在Google搜索结果中显示作者信息
- 【Google官方教程】第四课:在UI中显示Bitmap
- 133句告诫自己的话
- Access is denied + Unable to start debugging
- Teechart 代码 C++ (转) 很全的Teechart应用
- dynamic_Cast的使用
- 消息队列学习日记
- 如何在 Google Gadget 中显示击球统计数据
- 探究 Lotus Forms 中的事件处理之第 1 部分:表单对计算功能的支持
- 在 AIX 中运行 Oracle
- DB2 pureXML 动态编程组合拳:iBatis+BeanUtils+JiBX
- 当new分配空间失败时
- adsfaf
- 身份证查询移动案例教学 for PocketPC
- RSA加密解密及RSA签名和验证
- 超好的PIX模拟器