文献調査リストの図書館蔵書状況の一括取得
googleスプレッドシートに記載した調査対象の文献リスト(isbnリスト)を元に、指定した図書館の蔵書状況を取得するスクリプト作った。
OpenBDとカーリルの図書館APIを利用している。提供元に感謝。
本来やりたかった調査自体を停止して、ぐだぐだと丸二日開発。もっとささっと作れたら良いんだが…。
スプレッドシートからカーリルの図書館APIを使い図書館データベースの値を取り出す
スプレッドシートからカーリルの図書館APIを使って蔵書情報を取得する
サンプルソースコードなどは以下。 追記:バグがたくさんあったのでいったん取り下げ。 後ほど版管理したいのでgithubに上げます。
スプレッドシートから図書館情報を取り出すサンプル
やってること
簡単!
ソースコード
(準備中)
スプレッドシートから図書館の蔵書情報を取り出すサンプル
やってること
- シートからisbnリストを全て読みだす
- シートから図書館systemId(上記図書館情報で取得できる)と図書館keyを読みだす
- 図書館key単位で蔵書あり、無しを判断する
- systemId以下に複数の図書館keyが存在するため、若干混乱する
- isbnと図書館systemIdを元にカーリルのAPIに問い合わせ
- 結果がすぐ帰ってこないのでポーリングの必要あり
- APIの詳細仕様はこちら 図書館API仕様書 | カーリル
- 戻ってきたjsonを分解してシートに記載する
- あらかじめ各isbn毎に図書館キーの位置をオフセットとして覚えておく
- オフセット位置にjsonに格納されている蔵書情報を書きこむ
- isbnの本情報のURLを作成
- カーリルAPI利用時の約束
スプレッドシートへの書き込み処理がぐだぐだコードであんまり良くない!
でもまぁ…別に騒ぐようなことでもないな。
タイムアウト120秒。
全isbn問い合わせ完了まで結構時間がかかるので、終らなかった場合も考えて、レジュームできるようにしてある。
(取得済みのisbn行を再調査しない)
ソースコード
(準備中)
おわり!