将棋DB2」から棋譜を半自動でダウンロード 2026年9月18日更新

 

Windowsコマンドプロンプトでの操作をご存知の方のために書いています。

用意するもの

手順

  1. たとえば「新着の棋譜」の1ページ目のアドレスは https://shogidb2.com/newrecords?q=&page=1 でページを選択するボタンは50ページまでしかないが、アドレスで指定すると https://shogidb2.com/newrecords?q=&page=500 のように500ページまで開ける。そこで、

    wget "https://shogidb2.com/newrecords?q=&page=1"
    wget "https://shogidb2.com/newrecords?q=&page=2"
    wget "https://shogidb2.com/newrecords?q=&page=3"
    ・・・・・・

    のようにダウンロードしたい棋譜が含まれるページをまとめてダウンロードするバッチファイルを作成し、wget コマンドにパスを通して実行してページのhtmlをダウンロードする。

  2. どこかのフォルダにダウンロードしたファイルだけをコピーしてそこをカレントとして grep コマンドと uniq コマンドにパスを通してコマンドプロンプトで

    for %f in (*.*) do grep -Eho "[0-9a-f]{40,}" < %f | uniq | sort >> ID.txt

    を実行すると40桁i以上の棋譜IDが"ID.txt"に書き出される。(棋譜IDは変更されたことがある。2026年1月にはIDはすべて40桁であった。)

  3. Microsoft Edge を既定のwebブラウザーとして設定した環境でそれ起動した状態で "GetKifu.zip" 中の "GetKifu.uws" と "ID.txt" とを同じフォルダに置いて UWSC で実行すると kif ファイルのダウンロードが行われる。実行速度は遅いが終了するまでPCには触らない。途中で一時終了するには Ctrl + F2 キーを押す。"ID.txt" の終了したIDを削除すれば再開できる。Microsoft Edge は F11 キーで全画面表示にしているので F11 を再度押すと元に戻る。
    1920x1080の画面で Microsoft Edge の文字の大きさ100%で動作確認しているが、違う環境では "GetKifu.uws" の書き換えが必要。また、実行速度を速めるように "GetKifu.uws" 中の SLEEP の秒数を書き換えることもできるがあまり速くするとダウンロードを取りこぼすかもしれない。
    何等か原因でダウンロードに失敗したIDは再度 "ID.txt" を作成して UWSC を実行する。

「将棋DB2」サイトの変更によりいつ動作しなくなるかはわからない。その時 "GetKifu.uws" の変更だけで済めばよいのだが・・・・。

 

<ホーム>