Чи існує 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, але я не думаю , що це свого роду бізнес вони в.
— Єва Freeman

Я насправді ще не роблю. Щось навчитись. Ну добре, це звучить як веселий проект на вихідні!
— Ендрю Латем

3

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

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

Відповідь сервера дуже легка - немає сторонніх розміток.

Ці сторінки були розроблені для використання в браузері мобільного телефону до ТД в день турніру, якщо я правильно пам’ятаю, але вони також корисні для вилучення даних.


Приємна знахідка. Однозначно краще, ніж розбирати розмітку.
— Єва Фріман

Лише зауважте, це дасть вам поточну оцінку та назву за ідентифікатором члена або ідентифікатором члена за іменем, але це не дає статистики історії турніру.
— Єва Фріман

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

ЇМ ВЖЕ потрібна якась форма API. Є стільки крутих машоп, які можна було б зробити ...
— Mongo

2

Для цього існує API для наступного URL: 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"}

Зараз просто повертає Регулярні, Швидкі, Бліц та Фіде рейтинги, а також ім'я. Якщо у когось є питання, не соромтеся надіслати мені повідомлення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.