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

  関連記事

将棋
電王戦第4局までを振り返っての一観る将棋ファンの雑感

第3回の電王戦も第4局までが終わり、残すは明日の第5局のみとなりました。 ちなみ …

電王戦FINAL
将棋電王戦FINAL第2局、永瀬拓矢六段が衝撃の△2七同角不成でSeleneに見事勝利!対戦成績はプロ棋士の2連勝に。

将棋の電王戦FINAL第2局 永瀬拓矢六段 vs Seleneの対局は、永瀬六段 …

電王戦
第三回電王戦最終局「屋敷伸之九段 vs ponanza」の大盤解説会を観戦してきました

先日開かれた第三回電王戦の最終第5局。屋敷伸之九段 vs ponanza の大盤 …

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

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

将棋観戦ぴあ
電王戦のお供にも!将棋観戦ぴあは「観る将」にオススメの一冊でした

知人から編集に関わったのでと紹介されたので、先日発売されたばかりの「将棋観戦ぴあ …

都道府県別棋士数グラフ
棋士データベースで遊ぶ(3)〜都道府県別棋士数をグラフで可視化〜

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

観る将
「観る将」以外の「◯◯将」の呼び名を集めてみました

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

マンガ将棋入門
将棋を始める子どもに買った3冊の初心者向け入門書

先日の電王戦で高ぶった自分の気持ちとリンクするかのように、この頃うちの6才の息子 …

電王戦FINAL
電王戦FINALが3/14いよいよ開幕!第1局の斎藤慎太郎五段 vs Apery についてまとめてみる

将棋で人間とコンピュータが真剣勝負を繰り広げる電王戦。5対5の団体戦形式としては …

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

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