Есть ли API USCF?


10

Некоторое время назад был сайт, созданный отцом Н.М. Джонатана Хилтона, который немного анализировал историю рейтингов игрока в USCF.

Я думал, что это был довольно хороший сайт, но он исчез. Есть все еще некоторые подобные инструменты, плавающие вокруг. Мне было интересно, есть ли какой-нибудь API USCF, или как такие данные могут быть получены.

Ответы:


4

Я не знаю API, но, как они его настроили, довольно легко собирать данные с помощью метода, называемого скринингом экрана / сети .

Например, поиск по вашему имени дает ссылку на определенную страницу с вашим идентификатором участника в URL. Затем, если у вас есть язык программирования / библиотека, поддерживающая DOM, вы можете просто выяснить, где будут определенные вещи, основываясь на дизайне страницы. Используя селекторы jquery и пару обходов, эту страницу можно проанализировать, чтобы получить рейтинг как таковой:

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

Хороший рейтинг, кстати.

Это немного болезненно, и даже более болезненно, если они когда-нибудь решат изменить дизайн страниц, но в конечном итоге вы сможете проанализировать все нужные данные, а затем создать способ сбора данных для каждого участника и сохранения это в вашей собственной базе данных для аналитики. Это не будет так сложно сделать, просто переберите идентификаторы участников, и вы сможете получить их имена, состояния, рейтинги и т. Д. - столько же доступно на их экранах.

Надеюсь, это поможет.


И я только что видел ваш сайт - вы, наверное, знаете все о соскобах. В любом случае, было бы здорово, если бы они предложили API, но я не думаю, что они занимаются таким бизнесом.
Ева Фриман,

Я на самом деле еще нет. Есть чему поучиться. Ах, хорошо, звучит как веселый проект выходного дня!
Эндрю Лэтэм

3

Я не думаю, что USCF имеет полный API, но есть несколько специальных URL-адресов, которые вы можете использовать для упрощенной очистки экрана / анализа данных:

На каждой из этих «тонких» страниц вы можете передать идентификатор члена в качестве параметра url (например thin3.php?11111111).

Ответ сервера очень легкий - без посторонней разметки.

Если я правильно помню, эти страницы были предназначены для использования браузером мобильных телефонов TD в день турнира, но они также полезны для извлечения данных.


Хорошая находка. Определенно лучше, чем разбор разметки.
Ева Фриман

Просто обратите внимание, это даст вам текущий рейтинг и имя по идентификатору участника или идентификатору участника по имени, но не даст вам статистику истории турнира.
Ева Фриман

@WesFreeman единственный способ, с помощью которого мне удалось найти статистику истории турниров (и, ну, в общем, историю), - это очень методичный анализ страниц msa. У меня может быть какой-то старый php-код, который где-то извлекает данные, я посмотрю, смогу ли я выкопать это, когда буду наедине со своим внешним жестким диском позже.
Андрей

Им ДЕЙСТВИТЕЛЬНО нужна какая-то форма API. Есть так много крутых коллажей, которые можно сделать ...
Монго

2

Теперь для этого есть API по следующему адресу: https://uschessapi.azurewebsites.net/api/player/ {Id}

В этом случае {Id} = Идентификатор члена USCF

Ниже приведен пример запроса / ответа:

Запрос - https://uschessapi.azurewebsites.net/api/player/13197795

Ответ (JSON)

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

Прямо сейчас просто возвращает рейтинги Regular, Quick, Blitz и Fide, а также имя. Если у кого-то есть какие-либо вопросы, не стесняйтесь сообщать мне.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.