API

【python】カーリルAPIで図書蔵書情報を取得する

APIキー取得方法

カーリル公式ページにアクセス

✅ログイン/新規登録からユーザ登録

https://calil.jp/doc/api_ref.htmlにアクセス

✅新しいアプリケーションの追加をクリック

✅アプリ名とアプリURLを入力(一応テキトーな値でも大丈夫です。)

✅以上、APIキーが発行されます。

APIの使い方

👇まずはお試しください。

Executeをクリックすることで結果を確認できます。

今回は以下2つのAPIを紹介します。(公式リファレンス)

✅図書館の取得:https://api.calil.jp/library
指定した条件で図書館の一覧を取得します。緯度経度を指定した場合は、その地点から近い図書館を順に取得できます。

✅蔵書検索:https://api.calil.jp/check
図書館に対して蔵書の有無と貸出状況を取得できます。

パラメータの使い方

各パラメータは以下のように利用することができます。

✅図書館の取得:https://api.calil.jp/library

パラメータ 詳細
appkey アプリケーションキーを指定します 必須
pref 都道府県を指定します。例「青森県」 任意
city 市区町村を指定します。このパラメータはprefとセットで利用します。例「青森市」 任意
systemid 図書館のシステムIDを指定します。例「Aomori_Pref」 任意
geocode 緯度、経度を指定します。例「136.7163027,35.390516」 任意
format 出力形式を指定します。xmlまたはjsonです。デフォルトはxml 任意
callback JSONPのcallback関数名を指定します。デフォルトはcallback。JSONとして応答する場合はcallbackに空白を指定してください 任意
limit 図書館の取得件数を指定します 任意

 

取得結果として、図書館名/サイトURL/住所/電話番号/位置情報などが取得できます。

✅蔵書検索:https://api.calil.jp/check

パラメータ 詳細
appkey アプリケーションキーを指定します 必須
isbn 書籍のISBNを指定します。カンマ区切りで複数指定できます。例「4834000826」 必須
systemid 図書館のシステムIDを指定します。例「Aomori_Pref」 任意
format 出力形式を指定します。xmlまたはjsonです。デフォルトはxml 任意
callback JSONPのcallback関数名を指定します。デフォルトはcallback。JSONとして応答する場合はcallbackに空白を指定してください 任意

指定した書籍がどこの図書館にあるか取得することができます。

pythonでの実装方法

今回は図書館の一覧を取得するAPIで東京都渋谷区にある図書館の一覧を取得してみます。

import requests
import json

endpoint = "https://api.calil.jp/library"

headers= {
    
}
params={
    "appkey":"<APIキー>", 
    "pref":"東京都",
    "city":"渋谷区",
    "format":"json",
    "limit":"5"
}

result = requests.get(endpoint, headers=headers, params=params)

#返りが厳密にはjson型ではないので、自分で編集して無理やりjsonの形に変換する
rjson = result.text.lstrip("callback(").rstrip(");")
rjson = '{"data":' + rjson + "}"
data=json.loads(rjson)


for d in data["data"]:
    print(d["formal"])
    print(d["url_pc"])
    print(d["address"])
    print("----------------------")

 

出力結果:

国立能楽堂図書閲覧室
http://www.ntj.jac.go.jp/nou/lib.html
東京都渋谷区千駄ヶ谷4-18-1
----------------------
新国立劇場情報センター
http://www.nntt.jac.go.jp/centre/
東京都渋谷区本町1丁目1番1号
----------------------
日本医薬情報センター附属図書館
http://www.japic.or.jp/service/library/
東京都渋谷区渋谷2-12-15
----------------------
東京ウィメンズプラザ図書資料室
http://www1.tokyo-womens-plaza.metro.tokyo.jp/library/tabid/100/Default.aspx
東京都渋谷区神宮前5-53-67
----------------------
青少年教育情報センター
https://www.niye.go.jp/research/jyouhoucenter/
東京都渋谷区代々木神園町3番1号