APIを利用して、CodeforcesとTopCoder SRMでのレーティング変化を取得するPython 3スクリプト
ふと思い立ち、既出かもしれませんが、プログラミングコンテスト(のサイト)であるCodeforcesとTopCoder SRMにおけるレーティングとその変化を簡単に取得するためのPython 3スクリプトを書きました。メモを兼ねて、とりあえず載せておきます。
きっかけ
このところ、競技プログラミングの問題を解く以外の目的でプログラミングをすることが、少なくなってきました。そこで、久々に何かしらのツールを作ってみようと思いました。まずは、競技プログラミングがらみでちょっとしたものを書くことにしました。
とりあえずの題材として浮かんだのが、コンテスト後によくみられる、1234 → 5678 (+4444)のようなレーティング変化の表記でした。当初はスクレイピングが必要かと思っていましたが、よく調べたところCodeforces API - CodeforcesとTopCoder API · Apiaryの存在を知りました。そこで、これらと便利なPython用HTTPライブラリRequestsを利用して、レーティング変化を自動的に取得するスクリプトを書きました。
動作環境
以下の環境での動作を確認しました。
- Windows 10
- Python 3.4.5
- Requests 2.10.0
- たとえば、
pip install requests
でインストール可能です。Anacondaにはすでに含まれているかもしれません。
- たとえば、
スクリプト
以下の通りです。念のため、ライセンスはCC0としておきます。例外処理等が不十分です。
実行結果の例は、次の通りです。
Codeforces: 1445 -> 1478 (+33)
TopCoder SRM: 803 -> 787 (-16)