2008年7月5日土曜日

近代書誌データベースの画像を一度に取得する



薄田泣菫の「白羊宮」を読みたくなったので、ネットで検索したら青空文庫にはなく、近代書誌データベースにあることがわかりました。
ところがこの近代書誌データベース、1ページ1ページのダウンロードが遅い上に、画像サイズが800x600と小さく、各ページ毎にサイズを直して表示しなおすのが非常に手間暇かかります。
仕方がないので、ちょっとWebページの中身を拝見させてもらったら、白羊宮の画像に関しては以下のことがわかりました。

  1. 一度に表示できる最大のサイズは、1520x1004ドット。(これ以上いくら設定でサイズを大きくしても見ることができない。)

  2. この画像はある特定のURLを送って、サーバ側で「画像を生成」させて、その後で取得しなければならない。


そういうわけで、下記のようなスクリプトを作成し、一括して1520x1004ドットの全ページのJPEGを取得するようにしてみました。結果は良好で、現在はこうやって取得したJPEGファイルをzipで固めてビューワーで読んでいます。また、他の文献もいくつか、同様の方法で取得できることがわかりました。
(安易な乱用を防ぐため、スクリプトの一部は伏せ字にしていますが、ページの中身を調べればおそらくはすぐにわかるでしょう。)

#!/bin/sh
# 近代書誌データベースの画像を、1600x1200(1520x1004)で取得します。
# usage: command doc-id max-page
# 実行前のチェック項目
# (1) ページ数
# (2) 画像サイズ:ファイルの末尾が760-502/a-1520-1000.jpgとなっている場合は、1520x1004 が最大サイズ。これ以外の場合は、実験してみて下記の値を調整する。
count=0
while [ $count -le $2 ];
do
echo "Now processing $1-`printf \"%04d\"` $count"
curl "http://image.nijl.ac.jp/XXXX(伏せ字)XXXX/$1-`printf \"%04d\" $count`.jp2&file=kindai.html&dy=1200&dx=1600" > /dev/null
curl "http://image.nijl.ac.jp/XXXX(伏せ字)XXXX/$1-`printf \"%04d\" $count`.dir/02-0/1520-1004/a-1520-1004.jpg" -o $1-`printf "%04d" $count`.jpg
count=`expr $count + 1`
done

実行例(白羊宮のJPEGファイル172枚取得)は以下の通りです。

% sh getNDLDoc.sh CKMR-00075 172


0 件のコメント: