USCF API가 있습니까?


10

얼마 전 NM Jonathan Hilton의 아버지가 사이트의 플레이어의 USCF 등급 기록을 분석 한 사이트가있었습니다.

나는 그것이 꽤 좋은 사이트라고 생각했지만 사라졌습니다. 여전히 떠 다니는 것과 같은 도구가 있습니다. 일종의 USCF API가 있는지 또는 그러한 종류의 데이터가 어떻게 수집되는지 궁금합니다.

답변:


4

API에 대해서는 잘 모르지만 설정 방법은 screen / web scraping 이라는 기술을 통해 데이터를 수집하는 것이 매우 쉽습니다 .

예를 들어, 이름을 검색하면 URL에 회원 ID가있는 특정 페이지에 대한 링크가 제공됩니다. 그런 다음 DOM을 인식하는 프로그래밍 언어 / 라이브러리가 있으면 페이지 디자인을 기반으로 특정 사항이있는 위치를 간단히 파악할 수 있습니다. jquery 선택기와 몇 개의 순회를 사용하여 해당 페이지를 구문 분석하여 다음과 같은 등급을 얻을 수 있습니다.

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

그건 그렇고 좋은 평가.

페이지 디자인을 변경하기로 결정하면 조금 고통스럽고 더 고통 스럽지만 결국 원하는 모든 데이터를 파싱 한 다음 각 구성원에 대한 데이터를 수집하고 저장하는 방법을 만들 수 있습니다 분석을 위해 자신의 데이터베이스에 저장하십시오. 그렇게하기가 어렵지 않고 회원 ID를 반복하기 만하면 이름, 상태, 등급 등을 얻을 수 있습니다.

희망이 도움이됩니다.


방금 당신의 웹 사이트를 보았습니다. 아마도 당신은 긁기에 관한 모든 것을 알고있을 것입니다. 어쨌든, 그들이 API를 제공한다면 멋지 겠지만, 그것이 그것이 일종의 사업이라고 생각하지 않습니다.
Eve Freeman

실제로는 아직 없습니다. 배울 것. 아, 재미있는 주말 프로젝트 인 것 같습니다!
앤드류 Latham

3

USCF에 전체 API가 있다고 생각하지 않지만 간단한 화면 스크래핑 / 데이터 구문 분석에 사용할 수있는 몇 가지 특수 URL이 있습니다.

각 "씬"페이지에서 멤버 ID를 url 매개 변수 (예 :)로 전달할 수 있습니다 thin3.php?11111111.

서버 응답은 매우 가벼우 며 마크 업이 없습니다.

이 페이지는 내가 기억하는 경우 토너먼트 당일 TD가 휴대 전화 브라우저를 사용하도록 설계되었지만 데이터 추출에도 유용합니다.


좋은 발견. 마크 업을 파싱하는 것보다 확실히 좋습니다.
Eve Freeman

참고로, 회원 등급별 현재 등급과 이름 또는 회원 등급별 이름을 제공하지만 토너먼트 기록 통계는 제공하지 않습니다.
Eve Freeman

@WesFreeman 토너먼트 기록 통계 (및 기록)를 찾을 수있는 유일한 방법은 msa 페이지를 체계적으로 파싱하는 것입니다. 어딘가에 데이터를 추출하는 오래된 PHP 코드가있을 수 있습니다. 나중에 외장 하드 드라이브와 함께 혼자있을 때 그것을 파낼 수 있는지 볼 수 있습니다.
앤드류

그들은 어떤 형태의 API가 필요합니다. 할 수있는 멋진 매쉬업이 많이 있습니다 ...
Mongo

2

다음 URL 에이 API가 있습니다 : https://uschessapi.azurewebsites.net/api/player/ {Id}

이 경우 {Id} = USCF 회원 ID

다음은 요청 / 응답 예입니다.

요청-https: //uschessapi.azurewebsites.net/api/player/13197795

응답 (JSON)

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

지금은 이름뿐만 아니라 일반, 빠른, 블리츠 및 Fide 등급을 반환합니다. 질문이 있으시면 언제든지 저에게 메시지를 보내주십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.