是否有USCF API?


10

不久前,有一个由NM乔纳森·希尔顿(NM Jonathan Hilton)的父亲制造的网站,该网站对球员的USCF评级历史进行了一些分析。

我认为这是一个非常不错的网站,但它消失了。仍然有一些类似的工具在浮动。我想知道是否存在某种USCF API,或者该如何捕获这些数据。

Answers:


4

我不知道API,但是他们以他们的方式来设置它,通过称为screen / web scraping的技术来收集数据非常容易。

例如,搜索您的名字会提供指向特定页面的链接,该页面的URL中包含您的会员ID。然后,如果您具有可识别DOM的编程语言/库,则可以根据页面的设计简单地确定某些内容在哪里。使用jquery选择器和一些遍历,可以对该页面进行解析以得到如下评分:

> $("td td td:contains(Regular Rating)").next().find("nobr").text();
"2072  
2012-03(Current floor is 1800)"

不错,评分。

如果他们决定更改页面的设计,这会有些痛苦,甚至更加痛苦,但是最终您将能够解析出所需的所有数据,然后构建一种为每个成员收集数据并存储的方法在您自己的数据库中进行分析。这样做并不难,只需遍历成员ID,您就可以获取其名称,状态,等级等,因为他们的屏幕上有很多可用的内容。

希望能有所帮助。


我刚刚看到了您的网站-您可能对刮刮一无所知。无论如何,这将是冷静,如果他们提供了一个API,但我不认为这是那种生意的他们所在。
伊芙·弗里曼

我实际上还没有。要学习的东西。嗯,听起来像是一个有趣的周末计划!
Andrew Latham 2012年

3

我认为USCF没有完整的API,但是您可以使用一些特殊的url来简化屏幕抓取/数据解析:

在每个“薄”页面中,您都可以将成员ID作为url参数传递(例如thin3.php?11111111)。

服务器响应非常轻巧-没有多余的标记。

如果我没记错的话,这些页面是为TD比赛当天的手机浏览器设计的,但是它们对于提取数据也很有用。


好发现。绝对比解析标记要好。
伊芙·弗里曼

请注意,这将为您提供当前的评分和按会员ID的名称,或按会员ID的名称,但不会提供任何锦标赛历史记录统计信息。
伊芙·弗里曼

@WesFreeman我能够找到锦标赛历史记录统计数据(以及历史记录)的唯一方法是非常有条理地解析msa页面。我可能有一些旧的php代码可以在某处提取数据,稍后我将与外部硬盘驱动器一起使用时,我是否可以将其挖掘出来。
安德鲁

他们确实需要某种形式的API。有这么多很棒的混搭可以完成...
Mongo 2012年

2

现在,以下网址提供了一个API:https : //uschessapi.azurewebsites.net/api/player/ {Id}

在这种情况下,{Id} = USCF成员ID

以下是示例请求/响应:

请求-https: //uschessapi.azurewebsites.net/api/player/13197795

响应(JSON)

{"memberId":"13197795","name":"JEREMY KRASIN","regularRating":"1828","quickRating":"1818","blitzRating":"1765","fideRating":"1749"}

现在,仅返回常规,快速,闪电战和信义等级以及名称。如果有人有任何问题,请随时给我发消息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.