League of Legends(以下LoL)ではRiotGames APIを使って試合結果やプレイヤーのデータを取得することができます。
代表的なのはOP.GG(https://jp.op.gg/l=ja)というLoLのデータサイトで、APIを使ってサモナー個人のデータやチャンプの勝率などを表示しています。
今回はPythonでデータを取得するための準備や方法について記していきます。
(他の言語については扱っていないですが、検索してみればやられている方もいると思うので探してみてください)
実行環境
- Python3 (ver: 3.7.3)
- Anaconda (ver: 2019.07)
- Jupyter Notebook (ver: 6.0.0)
準備
予めAPIキーの取得と、Pythonでデータを取得できるライブラリRiot-Watcherをインストールする必要があります。
1. APIキーの取得
まずは、以下のサイトに行ってお持ちのアカウントでログインしてください。日本サーバーのアカウントでも大丈夫です。(アカウントを持ってない方はLoLの公式アカウントから作成してください。)
https://developer.riotgames.com/
できましたら、ページの下の方にある「私はロボットではありません」にチェックを入れ、「REGENERATE API KEY」というボタンをクリックします。
これでAPIキーが作成できました!画像の赤い丸で囲ったものが実際のAPIキーです。(頭文字が「RGAPI」で始まる)
※注意※
発行される開発用APIは有効期限が発行してから24時間以内なので、期限を過ぎたら同じ手順で新しくAPIキーを発行する必要があります。ただし、アプリの申請をして承認されると有効期限のないAPIがもらえるみたいです。詳しくは以下のページを参照してください。
http://orolog.hatenablog.jp/entry/2018/02/19/221553
2. Riot-Watcherのインストール
続いて、Pythonで試合データを扱えるライブラリRiot-Watcherをインストールします。コマンドプロンプトで以下のコマンドを入力してインストールしてください。
pip install riotwatcher
Riot-Watcherのgithubは以下にあります。
https://github.com/pseudonym117/Riot-Watcher
データの取得
準備が整ったら早速データを取得してみましょう。
from riotwatcher import RiotWatcher
API_KEY = '[APIキー]'
watcher = RiotWatcher(API_KEY)
RiotWatcherに先ほどの自身のAPIキーを渡すことでデータを取得できます。
試しに韓国のLoLプロプレイヤー、Faker選手(OPGG: https://www.op.gg/summoner/userName=Hide%20on%20bush)のサモナーデータを見てみましょう。
region = 'kr' # 鯖
name = 'Hide on bush' # サモナーネーム
summoner = watcher.summoner.by_name(region, name)
summoner
実行結果はこちらです。(ID等はあらかじめ暗号化されていますが、念のため隠しています)
日本サーバーのサモナーを調べたい場合は、regionを'jp1'に変えてください。
続いて、最新のマッチリストを見てみましょう。
match = watcher.match.matchlist_by_account(region, summoner['accountId'])
match
このようにして様々なデータを取得することができます。
その他に関しては以下のRiotWatcherのドキュメンテーションを参考にしてください。
https://riot-watcher.readthedocs.io/en/latest/index.html
最後に
わからないところや間違っている箇所がありましたら、ご指摘いただけるとありがたいです。
次回はRiotWatcherの様々なパッケージがどのような役割を果たしているのかについて投稿したいと思います。