【python】バーコードリーダで遊ぶ・isbnコードで書籍検索【楽天API】
こんばんは.1000chです. 先日四国まで旅行に行ってまいりました. 3泊4日で4県巡ってきましたが,四国なかなか良いとこですね. 山あるし海あるし川あるし. いつかまた行きたいなぁ.
さて今回は,ISBNコードから書籍データにアクセスしてみようと思います.
こんなの買った
バーコードリーダー! amazonで3000円くらい. レーザーでバーコードピッピできるよ!1
購入きっかけは「たまった本の整理をしたい!」と思ったこと. 最近積んどく本が増えて,「やべダブって買ってしまった」なんてことが多々あり, また自宅の本棚がいい感じに埋まってきたのです. なので上手いこと整理するシステム作れないかなーと思い購入することに.
「アプリでバーコードリーダ使えばいんじゃね?」ってツッコミはなしですよ. サーバにapiだけ用意すればインタフェースは何でも使えるしね!1
ともあれ,いざ開封の義!
本体とケーブルが付属
PC側がUSB,本体側がLANケーブルのコネクタになってます.
LANコネクタは一度接続すると外すのがちょっと面倒.爪楊枝か何かが必要になります.
がっちゃんこ〜
黄色いトリガー引いてるとレーザーが!かっけえ!
PCにつなぐと,PC側ではUSBキーボードとして認識されます. イメージとしてはテンキーですね. バーコードをピッ!とすると,その数字が入力されます.
Macでもwinでも使えるっぽいですね. トリガー時連続読み取りとか,無音設定とか,付属のバーコードを読み取ることでいろいろ設定できるみたいです.
あそんでみる
というわけで早速バーコードリーダつかって遊んでみます. やりたかった書籍検索をやってみます.
という訳で早速amazonの商品検索apiを試してみたが...
意外とめんどくせえ....
デベロッパ登録に加えて,アフィリエイトの登録まで必要っぽい..? その上でapi利用時の認証もちょこちょこ面倒そう.
ちょっと検索したいだけなんだけどなー(´・ω・)
商品紹介してお小遣いとか考えてないんだけどなー(´・ω・
)
そこで「isbn api」でググったら楽天のapiが出てきました. 触ってみたらこちらがかなり楽だったので,今回はコレのご紹介.
楽天API
オフィシャルはこちら.
このなかで,書籍検索apiが使えそうです.
api利用にはアプリケーションIDが必要となるので,上部からアプリIDを発行します. 楽天IDがあれば,入力も少なく簡単に発行できました.
IDが発行できたら,実際にapiを触ってみましょう. APIテストフォームからisbnで書籍検索してみます.
ターゲットとして利用するのは,いつもお世話になってるこちらの本.
C言語ではじめる音のプログラミング―サウンドエフェクトの信号処理
- 作者: 青木直史
- 出版社/メーカー: オーム社
- 発売日: 2008/12
- メディア: 単行本
- 購入: 19人 クリック: 235回
- この商品を含むブログ (24件) を見る
isbnは"9784274206504"です.
入力してみる
GETしてみる
おお!データとれた!
pythonから叩く
データもとれるっぽいので,「ピッ」して自動で検索するプログラムを作ります.
何時ぞも使ったrequestsを使いますよ.
#coding:utf-8 import requests as req if __name__ == '__main__': url = "https://app.rakuten.co.jp/services/api/BooksBook/Search/20130522" #最後の日付はapiのバージョンっぽい app_id = "0000000000000000" #自分のapp_idを入力 #isbn = "9784274206504" #ベタうちならこんな感じ isbn = input("please input isbn code!:") #つないだ状態でピッするならこっち payload = { 'format':'json', 'isbn':isbn, 'applicationId':app_id } res = req.get(url,params=payload) data = res.json() print(data)
実行結果
(py3)masa% test.py please input isbn code!:9784274206504 [{'Item': {'reviewAverage': '4.0', 'seriesNameKana': '', 'listPrice': 0, 'availability': '4', 'subTitleKana': 'サウンド エフェクト ノ シンゴウ ショリ', 'itemUrl': 'http://books.rakuten.co.jp/rb/5938973/', 'contents': '', 'booksGenreId': '001005005004', 'isbn': '9784274206504', 'largeImageUrl': 'http://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2742/27420650.jpg?_ex=200x200', 'reviewCount': 1, 'affiliateUrl': '', 'discountRate': 0, 'titleKana': 'シー ゲンゴ デ ハジメル オト ノ プログラミング', 'mediumImageUrl': 'http://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2742/27420650.jpg?_ex=120x120', 'title': 'C言語ではじめる音のプログラミング', 'postageFlag': 1, 'publisherName': 'オーム社', 'subTitle': 'サウンドエフェクトの信号処理', 'smallImageUrl': 'http://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2742/27420650.jpg?_ex=64x64', 'authorKana': 'アオキ,ナオフミ', 'limitedFlag': 0, 'salesDate': '2008年12月', 'size': '単行本', 'chirayomiUrl': '', 'discountPrice': 0, 'seriesName': '', 'author': '青木直史', 'itemCaption': '', 'itemPrice': 2808}}]
得られるデータにimageurl等もあるので,マイ本棚とか作れそうですねー. 惜しむらくは取れるデータにページ数が無いこと.. 読書履歴管理にはちょっと弱いかもしれんね.
所感
書籍検索のapiはapp_idだけで認証できるぽいので楽ですね. ブックマーク系apiはoauth認証が必要なのでtoken取得だのなんだのが必要となります.
と,いうか楽天apiはほとんどapp_idだけでごにょごにょできるっぽいです. トラベルとかレシピとかもあって,なかなか面白そうですね.