【Python3】AmazonProductAdvertisingAPIでISBNから検索して図書情報を取得

[スポンサーリンク]


ISBNから図書情報を取得したい


先日古本屋にて気になった本を買って来たところ
本棚に既に同じ本が有りました・・・涙

(大した冊数はないのですが)
本棚にある本の情報の一覧を作りたいということに至りました

本を開いて情報を手打ちしてもいいのですが
面倒なのでISBNから本の情報を取得することをPythonで実現してみたいと思います


ISBNとは


世界基準で本に一意に番号が振ろうという規格がありそのコードがISBNです
ISBNはInternational Standard Book Numberの頭文字で、国際標準図書番号と呼ばれています
2006年までは10桁コードでISBN-10、2007年以降は13桁コードになりISBN-13となっています

ISBNの意味や利便性は日本図書コード管理センターさんのサイトに記載があります
今回はこのISBNから図書情報を取得していきます

書籍出版流通とISBNの利便性 – 日本図書コード管理センター
ISBNと書籍JANコードとは – 日本図書コード管理センター

[スポンサーリンク]


Amazon Product Advertising API


図書情報の取得にAmazon Product Advertising APIを使ってみます
Amazonさんがアフリエイターに向けて公開している商品情報APIで、商品の情報を取得することが出来ます
今回はこのAPIに、ISBNをキーに検索を掛けて、タイトルや著者、出版社情報等を取得してみます

APIを使うにはトラッキングIDと、アクセスキー、シークレットキーが必要になります
まずはその情報を確認します


トラッキングIDの確認方法


Amazonのアフリエイトアカウントの情報の中にトラッキングIDは表記されています
アフリエイトホーム画面の右上のアカウント情報から参照します

上部に現在のデフォルトトラッキングIDが表示されます
複数所有している場合は下段に、全てが表示されます


アクセスキー、シークレットキーの発行方法


次にAPIに接続する為のアクセスキーとシークレットキーを発行します

尚このAPIについては、アフリエイトの成功数が必要で、売り上げに繋がる広告がないと使用が停止されます
私が確認した時点では下記のような記載がヘルプに記載されていました

売上実績の発生がない場合は、PA-APIの利用開始はできません。また、発送済み商品売上が過去30日以内に発生していない場合、PA-APIをご利用いただけなくなる恐れがございます。

https://affiliate.amazon.co.jp/help/node/topic/GW65C7J2CSK7CA6C

私は本の情報取得という目的の為なので、APIが停止されても困らないので気にせず進めます
もしISBNの検索を長期的に使用し続けたく、またAmazonアフリエイトの成功数がない場合は避けるべきですね
GoogleブックなどISBNを検索できるAPIは他にもあるので、そちらを使用した方が良さそうです

アクセスキー、シークレットキーの発行は、Amazonアフリエイトのページから実施出来ます
メニューからAmazon Product Advertising APIを選択し、「認証情報を追加する」を押下します

すると、アクセスキーとシークレットキーが表示されます
この情報をメモしておきます

再発行する場合は、両方ともキーが新しくなるので、忘れないないようにする必要があります

「認証情報をダウンロードする」を押下すると、アクセスキーとシークレットキーが記載されたcsvファイルをダウンロードすることも出来ます

[スポンサーリンク]


PythonでAmazon Product Advertising APIを使用する


Amazon Product Advertising API 5.0は下記サイトの通り、公式ドキュメントが公開されています

Introduction · Product Advertising API 5.0

公式で配布されいるサンプルコードを使用することも出来ます
今回は、参考にさせて戴いた下記サイトの様に、amazon-paapi5を使用してAPIを使ってみます

【Python】AmazonのPA-API 5.0でAmazonの商品情報をとる方法 - Qiita
#はじめにAmazon PA-API(Product Advertising API)が2019年12月からバージョン4.0から5.0へと一新したためスクリプトもバージョン5.0用に組み直しました…

amazon-paapi5とは


amazon-paapi5はAmazon Product Advertising APIのラッパーとして公開されています
これを使用することで、簡単にAPIを使用することが出来ます

確認時点では、AmazonJapanに対応しており、Python3.6以上が動作確認されています

amazon-paapi5
Amazon Product Advertising API 5.0 wrapper for Python

amazon-paapi5のインストール方法


pipコマンドでインストールが可能です

実行時点では、バージョン 1.1.2がインストールされました


amazon-paapi5の使い方


amazon-paapi5はライブラリに含まれる関数を使用することで、簡単にAmazon Product Advertising APIを使用することが出来ます
関数や、引数については下記の通り情報が公開されています

Documentation for the Code — Amazon paapi5 1.1.2 documentation

Amazon Product Advertising APIサンプルコード


今回の目的であるISBNコードから図書情報を取得するコードを書いてみます
Amazon Product Advertising APIのSearchItemsを使って検索をします

いつもの通りサンプルコードなので、エラーハンドリングやキーの外出しはしていません

ラッパーamazon-paapi5をインポート

amazon-paapi5のAmazonAPI関数で接続設定

amazon-paapi5のsearch_items関数でAmazon Product Advertising APIのSearchItemsを実行


Amazon Product Advertising APIサンプルレスポンス


JSON形式のレスポンスが返ってきます
著者や訳者、出版社、出版日などが取得出来ます
アフリエイトAPIなので、detail_page_urlにアフリエイトURLも取得出来ていることが分かります

戻り値はcontains the AmazonProduct listが含まれるディクショナリー形式となっています
to_dict()で辞書型に変換して、戻り値に含まれる値を取得しました

もっとうまい方法などはいっぱいあると思いますが、当初狙っていた、ISBNから検索し、図書に関する情報を取得することが出来ました

[スポンサーリンク]

[スポンサーリンク]
▼オンラインで、初心者のプログラミングへの挑戦も、SE職のスキルアップも▼

コメント

タイトルとURLをコピーしました