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.
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.
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.
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 ...
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.
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.
fonte
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)
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.
fonte