stat.inkというサイトがある。
stat.ink
スプラトゥーン、スプラトゥーン2の勝敗データを収集しており、さらにサイトに登録されたデータはAPIを利用して取得することができるそうだ。
以下を参考に、ひとまず戦績データを1件とってくる。
stat.ink/get-battle.md at master · fetus-hina/stat.ink · GitHub
コードは下の方に貼っておいた。
なお、python3。
とってきたJSONファイルはbattle構造体という形式になっているそうだが、battle構造体の説明に辿り着けない(リンク切れ?)
ひとまず落としてきたJSONファイルをチラ見してみた。
・ステージ、ルール、勝敗、プレイヤーごとのキル、デス、キルアシスト、ブキ、ウデマエの情報はあり。
・プレイヤーごとのギアのデータは無い
今後やりたいこととしては、ブキ編成ごとの勝率を分析したい。けど、難しそう……。
簡単なところからはじめてみようかな。
例えば、編成事故とよく言われるチャージャー2人の場合の勝率を見てみるとか。
import json import http.client import urllib.parse from urllib.request import build_opener host = "stat.ink" path = "/api/v2/battle" # クエリパラメータを指定 params = {'count': 1} # jsonをファイルに書き出す際のファイルパス outfilepath = "stat_ink_test.json" def get_stat_ink(): conn = http.client.HTTPSConnection(host) params_url = urllib.parse.urlencode(params) conn.request("GET", path + "?%s" % params_url) response = conn.getresponse() return response if __name__ == '__main__': response = get_stat_ink() res_json = json.loads(response.read().decode("utf-8")) print(json.dumps(res_json, indent=4)) with open(outfilepath, 'w') as f: json.dump(res_json, f, ensure_ascii=False, indent=4)