WoT CWE管理シート自動化の旅々 1.『Wargaming公式 WargamingAPI』
この記事の続きの内容になっています。
本題のシート自動化に入る前に1.Wargaming API
幼いころから私(Wargaming)は戦車を動かすのが好きでした。中でも一番好きだったのはG.W.Tiger(P)。空から弾を落とせると評判の自走砲です。
Wargaming「私もG.W.Tiger(P)みたいにいろんなところにスタンを入れたい!」
母「じゃあまずは戦場に出て、立派なArty乗りにならないとね。」
Wargaming「Arty乗りになったらスタンを入れさせてくれる?」
母「もちろんよ!ね?」
父「?ああ(困惑気味)。ゴホン。あくまでもダメ出せて勝利に貢献できるようになってからだぞ。」
Wargaming「本当ね?本当の本当ね?」
母「本当の本当よ。」
Wargaming「(顔を輝かせる)私Arty乗りになる!」
母「(ニッコリ)」
父「(困惑)」
Wargaming「(やる気を出す)」
自分(Wargaming)で言うのもなんですが、私(Wargaming)は懸命に努力し毎日、毎日必死に勉強しました。そして、糞開発Wargaming社において2013年に開発され、情報取得がしやすいように作られたAPIがあります。そう、WargamingAPIです!※筆者はWargamingとは何の関係性もありません。ただの1プレイヤーです。
情報の取得をしやすくなるようにAPIを作っているはずなのに、痒いところに手が届かない、そんなWargamingAPIですが、データ取得を自動化するにあたっては切り離せない存在です。とりあえずWoTのアカウントでログインしておきましょう。
ログインしたら「MY APPLICATION」から自分のアプリケーションを作りましょう。名前は使用用途が分かれば適当でいいです。そして「Mobile」にチェック。これで準備は完了です。
後は、「API REFERENCE」から欲しい情報を選択、各parameterをセットして「SEND REQUEST」をクリックすれば画像の右下のようにデータを表示させることが出来ます。なお、「Realm for the request」をAsiaにしておきましょう。あとAsiaの初期言語は何故かタイ語なのでlanguageをen(英語)にしておきましょう。※日本語非対応
本題のシート自動化に入る前に2.スクレイピング
シート自動化の話に入る前に覚えておいてほしいことがもうひとつあります。それはスクレイピングとそれをする時に書くコードです。
それは「UrlFetchApp.fetch(URL)」です。URLの所にそれぞれのページのURLを書くと、そのページのデータを持ってきてくれるコードです。その取得したデータを整形して見やすいようにするところまでがスクレイピングなのですけども。
ところで、このコードのURLの所に上のURL for requestのところにあるURLを入れたらどうなるのでしょうか?
では、上のページのURL for requestに書いてあるURLをUrlFetchApp.fetch(URL)のURLに入れ、ログを出力するコードを書いてログを見てみましょう。
なんと1枚目の画像において帰ってきたデータがそのまま記載されているではありませんか!
はい、この内容をスプレッドシートに記載し、そこから切り取りたい情報だけを切り取って活用するのが今回のシート自動化における定義が表すこと1つ目、スクレイピングとなります。
WargamingAPIからは他にもいろいろな情報を持ってくることが出来るのですが、基本やることは上に書いてあることです。
WargamingAPIに欲しい情報がなかったら?
もしもWargamingAPIに欲しい情報がなかった場合、GMから直接データを持ってくることになります。その際は、上で書いたとおりにやっても何も情報を持ってくることが出来ません。なぜならGMのページはJava Scriptで動作しており、Java Scriptで書かれたデータはそのままだとスクレイピングすることが出来ません。その時は、PhantomJsCloudというものを使ってスクレイピングすることによって、Java Scriptで動作するページからもスクレイピングすることが出来るようになります。
使い方とかは下のページを見てください。絶対私が説明するよりわかりやすいはずです。
今回はここまでにしましょう。多分おそらくきっとmaybe次からは本題のシート自動化のお話に入っていきます。
最後に
こうして私はシートの自動化に着手しました。風の吹くまま気の向くままあちこちコードを書いて色々な経験をし、2か月が過ぎました。
はいっ、それでは問題です。殺伐とした戦場地帯を征く、ため息をこぼしてしまうほどの環境の変わらないゲームは一体何でしょう?そう、10周年のWoTです!!
続き。