Чи існує 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.