Existe-t-il une API USCF?


10

Il y a quelque temps, un site créé par le père de NM Jonathan Hilton a effectué des analyses sur les historiques de notation des joueurs USCF.

Je pensais que c'était un assez bon site, mais il a disparu. Il y a encore des outils comme ça qui flottent. Je me demandais s'il y avait une sorte d'API USCF, ou comment ce type de données pouvait être récupéré.

Réponses:


4

Je ne connais pas d'API, mais comme ils l'ont configurée, il est assez facile de collecter des données via une technique appelée grattage d'écran / Web .

Par exemple, une recherche sur votre nom donne un lien vers une page spécifique avec votre identifiant de membre dans l'URL. Ensuite, si vous avez un langage de programmation / bibliothèque qui prend en charge DOM, vous pouvez simplement déterminer où certaines choses seront, en fonction de la conception de la page. À l'aide de sélecteurs jquery et de quelques traversées, cette page peut être analysée pour obtenir la note en tant que telle:

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

Belle note, au fait.

C'est un peu pénible, et encore plus douloureux s'ils décident de changer la conception des pages, mais vous pourrez éventuellement analyser toutes les données que vous souhaitez, puis créer un moyen de collecter des données pour chaque membre et de stocker dans votre propre base de données pour l'analyse. Ce ne serait pas si difficile à faire, parcourez simplement les identifiants des membres, et vous pouvez obtenir leurs noms, états, notes, etc. - autant de choses sont disponibles sur leurs écrans.

J'espère que ça t'as aidé.


Et je viens de voir votre site Web - vous savez probablement tout sur le grattage. Quoi qu'il en soit, ce serait cool s'ils offraient une API, mais je ne pense pas que ce soit le genre d'entreprise dans laquelle ils se trouvent.
Eve Freeman

Je ne l'ai pas encore fait. Quelque chose à apprendre. Eh bien, ça ressemble à un projet de week-end amusant!
Andrew Latham

3

Je ne pense pas que l'USCF dispose d'une API complète, mais il y a quelques URL spéciales que vous pouvez utiliser pour le grattage d'écran simplifié / l'analyse des données:

Dans chacune de ces pages "minces", vous pouvez passer un ID membre comme paramètre url (par exemple thin3.php?11111111).

La réponse du serveur est très très légère - pas de balisage superflu.

Ces pages ont été conçues pour être utilisées par le navigateur de téléphones portables par TD le jour du tournoi si je me souviens bien, mais elles sont également utiles pour extraire des données.


Belle trouvaille. Certainement mieux que d'analyser le balisage.
Eve Freeman

Juste une note, cela vous donnera la note actuelle et le nom par ID de membre, ou ID de membre par nom, mais cela ne vous donne aucune statistique sur l'historique du tournoi.
Eve Freeman

@WesFreeman la seule façon dont j'ai pu trouver les statistiques de l'historique des tournois (et, bien, l'histoire) est en analysant très méthodiquement les pages msa. Je pourrais avoir un vieux code php qui extrait des données quelque part, je verrai si je peux creuser cela quand je serai seul avec mon disque dur externe plus tard.
Andrew

Ils ont vraiment besoin d'une certaine forme d'API. Il y a tellement de mashups sympas qui pourraient être faits ...
Mongo

2

Il existe maintenant une API pour cela à l' adresse suivante: https://uschessapi.azurewebsites.net/api/player/ {Id}

Dans ce cas, {Id} = ID de membre USCF

Voici un exemple de demande / réponse:

Demande - https://uschessapi.azurewebsites.net/api/player/13197795

Réponse (JSON)

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

À l'heure actuelle, il ne renvoie que les notes Regular, Quick, Blitz et Fide ainsi que le nom. Si quelqu'un a des questions, n'hésitez pas à m'envoyer un message.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.