amazon apiで商品のランキングを取得してみる

darkmoon1968 / Pixabay

[blogcard url=”https://wakabatimes.com/2018/09/20/222/”]

[blogcard url=”https://wakabatimes.com/2018/09/20/226/”]

こんな記事を配信しましたが、こちらはamazonのapiを使って自動で情報を取得してランキングを作ってます。ただこのAPI使うだけだと常にリアルタイムな情報になってしまうので、こんな簡易バッチを作りました。

①指定したカテゴリのAPIを取得

②取得した情報をjson形式で保存

言語はJAVAでフレームワークはSpringBootを使用しています。
バッチアプリをSpringbootで作ってみたいという思惑があったので、練習がてら作ってます。

作り方

ひな型作成

[blogcard url=”https://start.spring.io/”]

スプリングイニシャライザーでWEBをdependenciesに追加してひな型作成

このへんとか
[blogcard url=”https://qiita.com/MariMurotani/items/9f898741ad1f40507ab8″]

このへん
[blogcard url=”https://qiita.com/niwashun/items/c52e890180754bf0bc25″]

見ながらバッチの枠組み作成

API取得

このへん見ながらAmazonのAPIの取得方法を学ぶ
[blogcard url=”https://qiita.com/someone7140/items/df3514b3d139c1b94ef9″]

完成

完成品がこちら
[blogcard url=”https://github.com/tachikawaYutaka/amazon_ranking_api_batch”]

使い方

サーバに接続してコマンドラインで

java -jar amazon_rank_api_batch-v1.0.jar samaple_param1.json sample_param2.json save_dir save_file_name.json

を入力します。

samaple_param1.jsonはAPI利用するにあたってのアクセス情報になります。

{"accessKeyId":"0123456789",
"secretKey":"0123456789",
"endpoint":"webservices.amazon.co.jp"}

accessKeyIdやsecretKeyは自分で取得したものを使用します。

sample_param2.jsonは情報を取得するにあたっての設定情報になります。

{"service":"AWSECommerceService",
"operation":"BrowseNodeLookup",
"awsAccessKeyId":"aaaaaaaaaaaaaaaa",
"associateTag":"aaaaaaaaaaaaaaaa",
"browseNodeId":"2275256051",
"responseGroup":"TopSellers"}

awsAccessKeyIdやassociateTagは自分で取得したものを使用します。

browseNodeIdは商品のカテゴリーID的なものになります。

[blogcard url=”https://images-na.ssl-images-amazon.com/images/G/09/associates/paapi/dg/index.html?BrowseNodeIDs.html”]

この辺見ると対応するIDがわかります。

こちらをcronで定期的に実行しておけば、ある時点の情報が自動的に取得・蓄積できます。

こちらからは以上です。