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

  関連記事

電王戦リベンジマッチ
大晦日に行われた「電王戦リベンジマッチ 森下卓九段 vs ツツカナ」の雑感

大晦日に行われた「電王戦リベンジマッチ 森下卓九段 vs ツツカナ」。すっかり時 …

モリシタ集め
8/29に開かれた電王戦の記者発表会内容まとめ

将棋電王戦に関する記者発表会2014 – 2014/08/29 14 …

将棋
将棋ウォーズの時間切れ負け率が50%もあったので対策を考えてみた

ちょっと早口の人が相手だと話がなかなか頭に入ってこなかったり、何かを説明しようと …

われ敗れたり
電王戦の本当の勝利者は将棋ファンと米長氏。「われ敗れたり」を読んで。

今年の第3回電王戦が終わってしばらく経ってしまいましたが、今さらながら読みました …

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

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

将棋
将棋ウォーズで対人対局する時に自分が気を付けている3つの心構えについて

将棋ウォーズで誰かと対局するのはほんと楽しいですね。自分も相変わらず通勤電車内な …

棋士出身地マップ
棋士データベースで遊ぶ(5)〜棋士出身地マップに女流棋士を追加〜

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

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

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

5585aa8d9493d
「将棋メーカー」という将棋の駒画像ジェネレーターサイトを作りました

仕事が忙しいからとか何やら自分に言い訳をして、気が付けば前回ブログを更新してから …

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

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