Có API USCF không?


10

Cách đây một thời gian, có một trang web được tạo ra bởi cha của NM Jonathan Hilton đã thực hiện một số phân tích về lịch sử xếp hạng USCF của người chơi.

Tôi nghĩ rằng đó là một trang web khá tốt, nhưng nó đã biến mất. Vẫn còn một số công cụ như thế trôi nổi xung quanh. Tôi đã tự hỏi nếu có một số loại USCF API, hoặc làm thế nào loại dữ liệu đó có thể được lấy.

Câu trả lời:


4

Tôi không biết về API, nhưng theo cách họ thiết lập, việc thu thập dữ liệu khá dễ dàng thông qua một kỹ thuật gọi là quét màn hình / web .

Ví dụ: tìm kiếm trên tên của bạn cung cấp một liên kết đến một trang cụ thể với id thành viên của bạn trong URL. Sau đó, nếu bạn có một ngôn ngữ lập trình / thư viện nhận biết DOM, bạn có thể chỉ cần tìm ra nơi nào đó sẽ được, dựa trên thiết kế của trang. Sử dụng các bộ chọn jquery và một vài điểm ngang, trang đó có thể được phân tích cú pháp để có được xếp hạng như sau:

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

Nhân tiện đánh giá tốt.

Sẽ hơi đau và thậm chí còn đau hơn nếu họ quyết định thay đổi thiết kế trang, nhưng cuối cùng bạn sẽ có thể phân tích tất cả dữ liệu bạn muốn, sau đó xây dựng cách thu thập dữ liệu cho từng thành viên và lưu trữ nó trong cơ sở dữ liệu của riêng bạn để phân tích. Sẽ không khó để làm điều đó, chỉ cần lặp qua các id thành viên và bạn có thể nhận được tên, trạng thái, xếp hạng của họ, v.v .-- như có sẵn trên màn hình của họ.

Mong rằng sẽ giúp.


Và tôi vừa thấy trang web của bạn - có lẽ bạn biết tất cả về cạo. Dù sao, sẽ rất tuyệt nếu họ cung cấp API, nhưng tôi không nghĩ đó là loại hình kinh doanh mà họ tham gia.
Eve Freeman

Tôi thực sự chưa. Một cái gì đó để học hỏi. Ah tốt, âm thanh như một dự án cuối tuần vui vẻ!
Andrew Latham

3

Tôi không nghĩ rằng USCF có API đầy đủ, nhưng có một vài url đặc biệt mà bạn có thể sử dụng để phân tích màn hình / phân tích dữ liệu đơn giản hóa:

Trong mỗi trang "mỏng" đó, bạn có thể chuyển ID thành viên dưới dạng tham số url (ví dụ thin3.php?11111111).

Phản hồi của máy chủ rất rất nhẹ - không có đánh dấu bên ngoài.

Các trang này được thiết kế cho trình duyệt điện thoại di động được sử dụng bởi TD là ngày diễn ra giải đấu nếu tôi nhớ chính xác, nhưng chúng cũng hữu ích để trích xuất dữ liệu.


Đẹp tìm thấy. Chắc chắn tốt hơn so với phân tích đánh dấu.
Eve Freeman

Chỉ cần một lưu ý, điều này sẽ cung cấp cho bạn xếp hạng hiện tại và tên theo id thành viên hoặc id thành viên theo tên, nhưng nó không cung cấp cho bạn bất kỳ số liệu thống kê lịch sử giải đấu nào.
Đêm giao thừa Freeman

@WesFreeman cách duy nhất mà tôi có thể tìm thấy số liệu thống kê lịch sử giải đấu (và, tốt, lịch sử) là bằng cách phân tích cú pháp các trang msa rất phương pháp. Tôi có thể có một số mã php cũ trích xuất dữ liệu ở đâu đó, tôi sẽ xem liệu tôi có thể đào nó lên không khi tôi ở một mình với ổ cứng ngoài.
Andrew

Họ thực sự cần một số hình thức API. Có rất nhiều bản mashup thú vị có thể được thực hiện ...
Mongo

2

Hiện tại có một API cho url này: https://uschessapi.azurewebsites.net/api/player/ {Id}

Trong trường hợp này {Id} = Id thành viên USCF

Sau đây là một ví dụ yêu cầu / phản hồi:

Yêu cầu - https://uschessapi.azurewebsites.net/api/player/13197795

Phản hồi (JSON)

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

Ngay bây giờ chỉ cần trả về xếp hạng Thường xuyên, Nhanh, Blitz và Fide cũng như tên. Nếu ai có bất kỳ câu hỏi nào hãy nhắn tin cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.