多能工生産技術者の日常

20歳からFXの自動売買を開発しています。24歳からは株式投資等で純資産1000万円を目指します。


スポンサードリンク

【python】~書籍検索システムの開発~

スポンサーリンク

KeyKです。
今日は、国立国会図書館の書籍検索APIを使って、タイトルの取得を行いました。

目的

自分の持っている本をデータとして整理したい、何の本を持っているか忘れてしまうという方がいるため、このシステムを開発しました。
ちなみに、β版です。これからさらに改良していきます。

開発環境

pythonの入っているwindowsであれば大丈夫でしょう。(適当)
あらかじめ、pyndlsearchというライブラリをインストールしておきます。

GitHub - nocotan/pyndlsearch: Python wrapper of NDL Search.

プログラム

以下のようなプログラムになります。ISBNでヒットしないときは、「None」と表示されます。

# -*- coding: utf-8 -*-

from pyndlsearch.client import SRUClient
from pyndlsearch.cql import CQL


if __name__ == '__main__':
    isbn_input = input("input ISBN >>>")

    # CQL検索クエリの組み立て
    cql = CQL()
    #cql.title = '相手'
    #cql.fromdate = '2000-10-10'
    #cql.isbn = '9784040724188'
    cql.isbn = isbn_input
    #print(cql.payload())

    # NDL Searchクライアントの設定
    client = SRUClient(cql)
    client.set_maximum_records(3)
    #print(client)

    # get_response()ではxml形式で取得可能
    #res = client.get_response()
    #print(res.text)

    # SRU
    srres = client.get_srresponse()

    if((len(srres.records)) == 0):
        print('None')

    for record in srres.records:
        print(record.recordData.title)
        print(record.recordData.creator)
        print('')

実行

コマンドプロンプトから実行します。
f:id:KeyK:20200112190103j:plain

ここでISBNを打ち込みます。ここでは、資格全ガイドのISBNを入力します。
f:id:KeyK:20200112190130j:plain

すると、本のタイトルと著者が表示されます。

※ 最新の書籍だと、APIに書籍情報が登録されていないことがありヒットしない場合があります。また、検索時間に多少時間がかかります。(長いと30秒くらい)

今後の展望

他にもある書籍検索APIを使うと、書影と呼ばれる本の表紙を表示することができます。
これも実装できたらなぁと思います。
あと、GUIとか検索履歴をCSVに保存するとか出来るようにしたいです。
  
  
f:id:KeyK:20191025230204j:plain
  
  
  

プライバシーポリシー お問い合わせ