将棋ウォーズの対局履歴をスクレイピングしてURL保存するツールを作りました
将棋ウォーズの対局履歴ページは、悔しい負け方をした対局の一人感想戦をしたり、棋譜データを収集したりするのにとても便利ですよね。
ただ、この履歴ページには制限があって、特定の期間内しか対局データが表示されなくなっているようです。(仕様は不明確ですが、例えば自分の履歴ページの場合直近20日間程度の対局データのみ表示されています。)
でも履歴ページ上に表示されなくなったとしても、実は各対局の パーマリンク は有効なままなので、URL さえちゃんと分かっていれば過去の対局ページにはアクセスできるんですよね。
というわけで、過去の対局ページ URL を保存しておく簡単なツールを PHP で作ってみました。
概要
作ったツールはこちらです。
大まかに次のような機能からできています。
- 対局履歴ページをスクレイピングして、取得した対局データを CSV ファイルに保存します。
- 保存された CSV データから一覧ページを表示します。
ちなみにスクレイピングには Goutte を使ってみましたが、いやこれ超便利ですね。
使い方
さて使い方ですが、大したプログラムでもないので特別に難しいところはありません。
まず、GitHub から git コマンドでソースをチェックアウトします。
$ git clone git@github.com:ko31/swh.git
※または zip ファイルをダウンロードして解凍するのでも大丈夫です。
次に、history.csv、lasttime.dat の2ファイルに書き込み権限を与えておきます。
(例) $ cd swh $ chmod 666 history.csv $ chmod 666 lasttime.dat
get.php を編集して、$user を自身の将棋ウォーズユーザー名に変更します。
// ユーザー名 $user = 'ko31';
これで準備は OK です!
あとは、get.php を php コマンドで実行するか、ブラウザからアクセスしてみて、history.csv に対局履歴データが保存されれば成功です。
これを手動で実行するなり、cron などスケジューラを使うなりして get.php を定期的に実行していけば、継続的に対局履歴データを蓄積することができるわけです。
なお、view.php にブラウザでアクセスすると history.csv に保存されたデータを一覧表示することもできます。
使い方は以上です。
まとめ
思い立ってからとりあえず作ってみたのでだいぶ汚いソースですが、自分と同様にまず履歴を保存しておきたいと用途には使えるかと思います。気が向いたら近いうちにまたコードを手直ししたいところです。
なお、将棋ウォーズの対局履歴ページの仕様は公開されているわけではないので、あくまで自分のユーザーページでのみ動作を確認したプログラムとなります。他のユーザーによっては正常動作しないこともあるかもしれませんが、ご了承ください。
ad
この記事が気に入ったらシェアしてもらえると嬉しいです!
関連記事
-
-
将棋ウォーズで対人対局する時に自分が気を付けている3つの心構えについて
将棋ウォーズで誰かと対局するのはほんと楽しいですね。自分も相変わらず通勤電車内な …
-
-
大晦日に行われた「電王戦リベンジマッチ 森下卓九段 vs ツツカナ」の雑感
大晦日に行われた「電王戦リベンジマッチ 森下卓九段 vs ツツカナ」。すっかり時 …
-
-
コンピュータ将棋の歴史を紐解くのに「ルポ 電王戦」はおすすめの一冊
話題の新書「ルポ 電王戦―人間 vs. コンピュータの真実」を読みました。 タイ …
-
-
将棋を始める子どもに買ってあげた3冊の入門書
先日の電王戦で高ぶった自分の気持ちとリンクするかのように、この頃うちの6才の息子 …
-
-
私が振り飛車を指している理由
さて明日は安倍政権の評価を問う衆院選の投票日ですね。有権者のみなさん、もう投票先 …
-
-
11/26に開かれた将棋電王戦FINAL記者発表会の内容まとめ
11/26に将棋電王戦FINAL記者発表会が開かれました。 来春に行われる電王戦 …
-
-
観る将棋ファンなら手元に置きたい一冊!「プロ棋士名鑑」を買ってみました。
先日、宝島社から発売された「プロ棋士名鑑」を買いました。 観る将棋ファンならこれ …
-
-
将棋電王戦FINAL第2局、永瀬拓矢六段が衝撃の△2七同角不成でSeleneに見事勝利!対戦成績はプロ棋士の2連勝に。
将棋の電王戦FINAL第2局 永瀬拓矢六段 vs Seleneの対局は、永瀬六段 …
-
-
将棋電王戦FINAL第3局、やねうら王が稲葉七段に勝ちコンピュータ将棋チーム1勝目を挙げる!
将棋の電王戦FINAL第3局 稲葉陽七段 vs やねうら王の対局は、116手でや …
-
-
将棋電王戦FINAL第4局、Ponanzaが圧巻の強さで村山七段に完勝。人間対コンピュータは2勝2敗の五分に!
将棋の電王戦FINAL第4局 村山慈明七段 vs Ponanza の対局は、97 …