rui live note

WordPress、PHP、子育て、ブログ、将棋、コワーキング、子育て、群馬等に関する日々感じたことを書いているブログです

*

将棋ウォーズの対局履歴をスクレイピングしてURL保存するツールを作りました

      2015/09/06   将棋, 生活 , ,

  • このエントリーをはてなブックマークに追加
  • Pocket

将棋

将棋ウォーズの対局履歴ページは、悔しい負け方をした対局の一人感想戦をしたり、棋譜データを収集したりするのにとても便利ですよね。

ただ、この履歴ページには制限があって、特定の期間内しか対局データが表示されなくなっているようです。(仕様は不明確ですが、例えば自分の履歴ページの場合直近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 に保存されたデータを一覧表示することもできます。

将棋ウォーズ対局履歴

使い方は以上です。

まとめ

思い立ってからとりあえず作ってみたのでだいぶ汚いソースですが、自分と同様にまず履歴を保存しておきたいと用途には使えるかと思います。気が向いたら近いうちにまたコードを手直ししたいところです。

なお、将棋ウォーズの対局履歴ページの仕様は公開されているわけではないので、あくまで自分のユーザーページでのみ動作を確認したプログラムとなります。他のユーザーによっては正常動作しないこともあるかもしれませんが、ご了承ください。

2015/04/28追記

改良版の下記ツールもあります。よろしければ合わせてご覧ください!

ad

この記事が気に入ったらシェアしてもらえると嬉しいです!

  • このエントリーをはてなブックマークに追加
  • Pocket
  • follow us in feedly
  • RSS

  関連記事

将棋
何だかんだ電王戦はずっと続けて欲しいので、自分が観たい電王戦新棋戦案を考えてみた

先日の記者発表にて、来年の「電王戦FINAL」をもってこれまで対局形式の電王戦は …

対局時計
無料で使える対局時計アプリ「お手軽対局時計」

※この記事は「将棋 Advent Calendar 2016 – A …

電王戦
今週末は菅井五段対習甦の「将棋電王戦リベンジマッチ 激闘23時間」が楽しみですね!

「将棋電王戦リベンジマッチ 激闘23時間」菅井竜也五段 vs 習甦の対局が、いよ …

縁起の良い鳥
将棋メーカーで来年の年賀状素材を作ってみた

※この記事は「将棋 Advent Calendar 2016 – A …

トライ
初めてのトライ勝ちを達成!将棋ウォーズのトライルールが面白い

いやー気分爽快!先日、将棋ウォーズで始めてトライ勝ちを経験しましたが、すごい達成 …

Google Cloud Vision API
将棋棋士データベースで遊ぶ(10)〜Cloud Vision APIで棋士の顔写真解析〜

※この記事は「将棋 Advent Calendar 2016 – A …

電王戦FINAL
ニコニコ動画で毎日更新されている「電王戦FINALへの道」が見逃せない!

3月14日(土)に開幕する「将棋電王戦FINAL」。早く始まって欲しいような、始 …

第2回電王戦のすべて
電王戦FINALをもっと楽しむために読んでおきたい5冊のおすすめ本

将棋電王戦FINAL | ニコニコ動画 電王戦FINALが開幕する3月14日(土 …

将棋ウォーズ
伝説の「ひふみんアイ」を将棋ウォーズで体験してみた

将棋ウォーズは楽しいですね!将棋熱がとても高まっている今日この頃ですが、仕事帰り …

電王戦FINAL
電王戦FINAL第1局は斎藤慎太郎五段がAperyに完勝!ニコファーレの大盤解説会に行ってきました。

2015年3月14日、電王戦FINALの第1局・斎藤慎太郎五段 vs Apery …