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.