Некоторое время назад был сайт, созданный отцом Н.М. Джонатана Хилтона, который немного анализировал историю рейтингов игрока в USCF.
Я думал, что это был довольно хороший сайт, но он исчез. Есть все еще некоторые подобные инструменты, плавающие вокруг. Мне было интересно, есть ли какой-нибудь API USCF, или как такие данные могут быть получены.
Я не знаю 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. Есть так много крутых коллажей, которые можно сделать ...
Прямо сейчас просто возвращает рейтинги Regular, Quick, Blitz и Fide, а также имя. Если у кого-то есть какие-либо вопросы, не стесняйтесь сообщать мне.
Я не думаю, что USCF имеет полный API, но есть несколько специальных URL-адресов, которые вы можете использовать для упрощенной очистки экрана / анализа данных:
На каждой из этих «тонких» страниц вы можете передать идентификатор члена в качестве параметра url (например
thin3.php?11111111
).Ответ сервера очень легкий - без посторонней разметки.
Если я правильно помню, эти страницы были предназначены для использования браузером мобильных телефонов TD в день турнира, но они также полезны для извлечения данных.
источник
Теперь для этого есть API по следующему адресу: https://uschessapi.azurewebsites.net/api/player/ {Id}
В этом случае {Id} = Идентификатор члена USCF
Ниже приведен пример запроса / ответа:
Запрос - https://uschessapi.azurewebsites.net/api/player/13197795
Ответ (JSON)
Прямо сейчас просто возвращает рейтинги Regular, Quick, Blitz и Fide, а также имя. Если у кого-то есть какие-либо вопросы, не стесняйтесь сообщать мне.
источник