¿Hay una API de USCF?


10

Hace un tiempo hubo un sitio creado por el padre de NM Jonathan Hilton que hizo algunos análisis sobre los historiales de clasificación de USCF del jugador.

Pensé que era un sitio bastante bueno, pero desapareció. Todavía hay algunas herramientas como esa flotando. Me preguntaba si había algún tipo de API de USCF, o cómo se podría obtener ese tipo de datos.

Respuestas:


4

No conozco una API, pero de la forma en que la tienen configurada, es bastante fácil recopilar datos a través de una técnica llamada screen / web scraping .

Por ejemplo, una búsqueda en su nombre le da un enlace a una página específica con su identificación de miembro en la URL. Luego, si tiene un lenguaje / biblioteca de programación que sea compatible con DOM, simplemente puede averiguar dónde estarán ciertas cosas, en función del diseño de la página. Usando selectores jquery y un par de recorridos, esa página se puede analizar para obtener la calificación como tal:

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

Buena calificación, por cierto.

Es un poco doloroso, y aún más doloroso si alguna vez deciden cambiar el diseño de las páginas, pero eventualmente podrá analizar todos los datos que desee y luego construir una forma de recopilar datos para cada miembro y almacenarlos. en su propia base de datos para análisis. No sería tan difícil de hacer, simplemente iterar a través de los ID de miembro, y puede obtener sus nombres, estados, calificaciones, etc., ya que hay mucho disponible en sus pantallas.

Espero que ayude.


Y acabo de ver su sitio web: probablemente sepa todo sobre el raspado. De todos modos, sería genial si ofrecieran una API, pero no creo que ese sea el tipo de negocio en el que están.
Eve Freeman

En realidad aún no. Algo para aprender Ah bueno, ¡suena como un divertido proyecto de fin de semana!
Andrew Latham el

3

No creo que la USCF tenga una API completa, pero hay algunas URL especiales que puede usar para el análisis de datos / raspado de pantalla simplificado:

En cada una de esas páginas "delgadas", puede pasar un ID de miembro como un parámetro de URL (por ejemplo thin3.php?11111111).

La respuesta del servidor es muy, muy ligera, sin marcas extrañas.

Estas páginas fueron diseñadas para el uso del navegador del teléfono celular por los TD's el día del torneo si no recuerdo mal, pero también son útiles para extraer datos.


Buen hallazgo Definitivamente mejor que analizar el marcado.
Eve Freeman el

Solo una nota, esto te dará la calificación actual y el nombre por ID de miembro, o ID de miembro por nombre, pero no te da ninguna estadística del historial del torneo.
Eve Freeman el

@WesFreeman, la única forma en que he podido encontrar las estadísticas del historial del torneo (y, bueno, el historial) es mediante un análisis muy metódico de las páginas de MSA. Es posible que tenga algún código php antiguo que extraiga datos en alguna parte, veré si puedo desenterrar eso cuando esté solo con mi disco duro externo más tarde.
Andrew

Realmente necesitan alguna forma de API. Hay tantos mashups geniales que se podrían hacer ...
Mongo

2

Hay una API para esto ahora en la siguiente url: https://uschessapi.azurewebsites.net/api/player/ {Id}

En este caso, {Id} = ID de miembro de USCF

El siguiente es un ejemplo de solicitud / respuesta:

Solicitud: https://uschessapi.azurewebsites.net/api/player/13197795

Respuesta (JSON)

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

En este momento solo devuelve las calificaciones Regular, Quick, Blitz y Fide, así como el nombre. Si alguien tiene alguna pregunta, no dude en enviarme un mensaje.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.