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

  関連記事

棋士名ワードクラウド
将棋棋士データベースで遊ぶ(7)〜棋士名でワードクラウドを作る〜

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

加藤一二三
うひょー!将棋プロ棋士のLINEスタンプが出たので買ってみた

うひょー!こういうのあったらいいなぁと前から密かに思っていた、プロ棋士のLINE …

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

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

将棋用語辞書
将棋ブログを書くなら必ず入れておきたい「IME用将棋用語辞書」

何となくはてな界隈で将棋に関するブログ記事を見かけることが増え、将棋ブームが歩み …

電王戦FINAL
11/26に開かれた将棋電王戦FINAL記者発表会の内容まとめ

11/26に将棋電王戦FINAL記者発表会が開かれました。 来春に行われる電王戦 …

棋士データベース
将棋棋士データベースで遊ぶ(1)〜棋士データをスクレイピング〜

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

ぐんま秋祭り将棋大会
初めて参加したリアル将棋大会を振り返って(「第二回ぐんま秋祭り将棋大会」にて)

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

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

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

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

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

将棋
ブログに貼れる将棋局面図を作成できる便利なWebサービス

ブログを書いている方であれば、誰でも将棋の局面図を Web 上で簡単に作りたい! …