Gibt es eine USCF-API?


10

Vor einiger Zeit gab es eine Website von NM Jonathan Hiltons Vater, auf der einige Analysen der USCF-Bewertungshistorie des Spielers durchgeführt wurden.

Ich fand es eine ziemlich gute Seite, aber sie verschwand. Es gibt immer noch solche Werkzeuge. Ich habe mich gefragt, ob es eine Art USCF-API gibt oder wie diese Art von Daten erfasst werden könnte.

Antworten:


4

Mir ist eine API nicht bekannt, aber so wie sie eingerichtet ist, ist es ziemlich einfach, Daten mithilfe einer Technik namens Screen / Web Scraping zu erfassen .

Eine Suche nach Ihrem Namen führt beispielsweise zu einem Link zu einer bestimmten Seite mit Ihrer Mitglieds-ID in der URL. Wenn Sie dann eine Programmiersprache / Bibliothek haben, die DOM-fähig ist, können Sie einfach herausfinden, wo sich bestimmte Dinge befinden, basierend auf dem Design der Seite. Mithilfe von JQuery-Selektoren und einigen Durchquerungen kann diese Seite analysiert werden, um die Bewertung als solche zu erhalten:

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

Übrigens eine gute Bewertung.

Es ist ein bisschen schmerzhaft und noch schmerzhafter, wenn sie sich jemals dazu entschließen, das Design der Seiten zu ändern, aber schließlich können Sie alle gewünschten Daten analysieren und dann eine Methode zum Sammeln von Daten für jedes Mitglied und zum Speichern erstellen es in Ihrer eigenen Datenbank für die Analyse. Es wäre nicht so schwer, einfach die Mitglieds-IDs zu durchlaufen, und Sie können deren Namen, Status, Bewertungen usw. abrufen - so viel ist auf ihren Bildschirmen verfügbar.

Hoffentlich hilft das.


Und ich habe gerade Ihre Website gesehen - Sie wissen wahrscheinlich alles über das Schaben. Wie auch immer, es wäre cool, wenn sie eine API anbieten würden, aber ich glaube nicht, dass das die Art von Geschäft ist, in der sie sich befinden.
Eve Freeman

Ich eigentlich noch nicht. Etwas zu lernen. Na ja, klingt nach einem lustigen Wochenendprojekt!
Andrew Latham

3

Ich glaube nicht, dass die USCF eine vollständige API hat, aber es gibt einige spezielle URLs, die Sie für vereinfachtes Scraping / Parsing von Bildschirmen verwenden können:

Auf jeder dieser "dünnen" Seiten können Sie beispielsweise eine Mitglieds-ID als URL-Parameter übergeben thin3.php?11111111.

Die Serverantwort ist sehr, sehr leicht - kein überflüssiges Markup.

Wenn ich mich recht erinnere, wurden diese Seiten für den Browser eines Mobiltelefons von TDs am Tag des Turniers entwickelt, aber sie sind auch nützlich, um Daten zu extrahieren.


Schöner Fund. Auf jeden Fall besser als das Markup zu analysieren.
Eve Freeman

Nur eine Anmerkung, dies gibt Ihnen die aktuelle Bewertung und den Namen nach Mitglieds-ID oder die Mitglieds-ID nach Namen, aber es gibt Ihnen keine Statistiken zum Turnierverlauf.
Eve Freeman

@WesFreeman Der einzige Weg, wie ich Turnierverlaufsstatistiken (und auch Verlauf) finden konnte, ist das sehr methodische Parsen der MSA-Seiten. Ich habe vielleicht einen alten PHP-Code, der irgendwo Daten extrahiert. Ich werde sehen, ob ich das herausfinden kann, wenn ich später mit meiner externen Festplatte allein bin.
Andrew

Sie brauchen WIRKLICH irgendeine Form von API. Es gibt so viele coole Mashups, die gemacht werden könnten ...
Mongo

2

Hierfür gibt es jetzt eine API unter folgender URL: https://uschessapi.azurewebsites.net/api/player/ {Id}

In diesem Fall {Id} = USCF-Mitglieds-ID

Es folgt ein Beispiel für eine Anfrage / Antwort:

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

Antwort (JSON)

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

Im Moment werden nur die Bewertungen "Normal", "Schnell", "Blitz" und "Fide" sowie der Name zurückgegeben. Wenn jemand Fragen hat, kann er mir gerne eine Nachricht senden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.