Existe uma API USCF?

10

Há um tempo atrás, havia um site feito pelo pai do NM Jonathan Hilton que fez algumas análises sobre as histórias de classificação da USCF do jogador.

Eu pensei que era um site muito bom, mas desapareceu. Ainda existem algumas ferramentas como essa flutuando. Fiquei me perguntando se havia algum tipo de API USCF, ou como esse tipo de dados pode ser capturado.

Andrew Latham
fonte

Respostas:

4

Não conheço uma API, mas como eles a configuram, é muito fácil coletar dados por meio de uma técnica chamada tela / raspagem na web .

Por exemplo, uma pesquisa em seu nome fornece um link para uma página específica com seu ID de membro no URL. Então, se você possui uma biblioteca / linguagem de programação que reconhece o DOM, pode simplesmente descobrir onde serão determinadas coisas, com base no design da página. Usando seletores jquery e algumas travessias, essa página pode ser analisada para obter a classificação da seguinte forma:

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

Boa classificação, por sinal.

É um pouco doloroso e ainda mais doloroso se eles decidirem alterar o design das páginas, mas, eventualmente, você poderá analisar todos os dados que deseja e criar uma maneira de coletar dados para cada membro e armazenar no seu próprio banco de dados para análise. Não seria tão difícil de fazer, basta percorrer os IDs dos membros e você pode obter os nomes, estados, classificações etc. - o máximo disponível nas telas deles.

Espero que ajude.

Eve Freeman
fonte
Acabei de ver seu site - você provavelmente sabe tudo sobre raspagem. De qualquer forma, seria legal se eles ofereceram uma API, mas eu não acho que é o tipo de negócio que eles estão em.
Eve Freeman
Na verdade, eu ainda não. Algo para aprender. Ah, parece um projeto divertido de fim de semana!
Andrew Latham
3

Eu não acho que o USCF tenha uma API completa, mas existem alguns URLs especiais que você pode usar para simplificar a análise de dados / raspagem de tela:

Em cada uma dessas páginas "thin", você pode passar um ID de membro como um parâmetro de URL (por exemplo thin3.php?11111111).

A resposta do servidor é muito, muito leve - sem marcação estranha.

Essas páginas foram projetadas para uso do navegador de celular pelos TDs no dia do torneio, se bem me lembro, mas também são úteis para extrair dados.

Andrew
fonte
Bom achado. Definitivamente melhor do que analisar a marcação.
Eve Freeman
Apenas uma observação: isso fornecerá a classificação atual e o nome por identificação do membro, ou a identificação do membro por nome, mas não fornecerá nenhuma estatística do histórico de torneios.
Eve Freeman
@ WesFreeman, a única maneira de encontrar estatísticas de histórico de torneios (e, bem, história) é através da análise muito metódica das páginas msa. Eu posso ter algum código php antigo que extrai dados em algum lugar, vou ver se consigo descobrir isso quando estiver sozinho com meu disco rígido externo mais tarde.
Andrew
Eles realmente precisam de algum tipo de API. Há tantas mashups interessantes que poderia ser feito ...
Mongo
2

Há uma API para isso agora no seguinte URL: https://uschessapi.azurewebsites.net/api/player/ {Id}

Nesse caso, {Id} = ID de membro do USCF

A seguir, é apresentado um exemplo de solicitação / resposta:

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

Resposta (JSON)

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

No momento, apenas retorna as classificações Regular, Rápida, Blitz e Fide, além do nome. Se alguém tiver alguma dúvida, sinta-se à vontade para me enviar uma mensagem.

Maxqueue
fonte