⑥API実践-商品-Excel



Excel-VBAでアクセスする場合のソースプログラムを示します。★★の部分にAamzonから取得したKey等を入れればAmazon日本から情報取得できます。(取得方法は“④API実践-はじめに(登録方法含む)”で投稿)【PHPでの実施方法は⑤API実践-商品-PHP参照】

【使い方】
①Excelを開きVBEで新規に標準モジュールを追加し下記のプログラムをコピーして★★を自分のID,KEYに修正してください。
②以下のダウンロードボタンを押下し、2つファイルを取得します。本ファイルはAPI用の暗号化モジュールですので、VBEで新規に標準モジュールを2つ追加しファイルごとに貼り付けてください。(URLエンコードやMD5などの暗号化するためのモジュールです。私も詳細は理解してません。。。)
暗号
③①で貼り付けたプログラムを実行すれば動作します。

【少し解説】
本プログラムはASIN番号をキーにして商品情報を取得するためのAPIになっています。Sheet1のA列にASIN番号を入力しておくとB~G列にタイトル等を取得してくれます。下図参照(シートの1行目の項目名は入力しておく必要があります)。
1

以下にExcel-VBAのSampleExcelとプログラムを示します。
【以下のExcelをダウンロードし、IDなどを書き換えれば簡単に利用できます。】
API_sample

“⑥API実践-商品-Excel” への9件のフィードバック

  1. 通りすがり より:

    こんにちは。こちらで公開されているVBAを活用させていただいている者です。

    自分なりに調べて、取得する項目部分のコードを書き換えて、ランキングや新品と中古の価格、出品点数の情報が取れるようにしました。

    そこで質問なのですが、データの取得ミス?が起きて、空欄のまま次の項目に進んでしまう事が多発しています。

    ランキングの部分だけは必須でほしいデータなので、空欄の場合は再度取得し直すようループコするコードを書き足して対処したのですが、そもそも取得ミスが起きる原因がわからず、不便を感じています。

    取得ミスの原因や、対処法などで、何かわかる事があればご教授願いたいと思いコメントを残す事にしました。何卒宜しくお願いしますm(__)m

    • MrX より:

      いつもご利用ありがとうございます。ただ、正直なぜ空欄になるかはよくわかりません。
      単純にAmazonデータの問題かと思っています。
      ただ、何回かすれば取得できるのでしたら、アクセス速度の可能性があります。
      APIで取得されているなら明確な規定を見たことはない(どこかにあると思われますが。。。)ですが、MWSなどは規定があり一定速度異常だとエラーになったりします。
      http://docs.developer.amazonservices.com/ja_JP/products/Products_Throttling.html
      参考になればと思い共有します。

      • 通りすがり より:

        情報ありがとうございます。

        実は、、、速度を遅くするのは試した事があるのです。が、それでも取得ミスが起きたので、結局、「空欄の場合は同じ項目で再度取得するコードを」を書き加えたという流れです。

        取得できるまでループさせるか、後で取得し直すか、作業効率との相談ですね。

        何かわかった時はまた書き込みたいと思います。お忙しい中ご対応ありがとうございました。

  2. くろこ より:

    こんにちは。VBAを最近知り学ぼうと色々回った結果ここに行きついたものです。

    質問なのですが、
    Product Advertising APIよりレスポンス要素のコンディションを見たところ以下の記述があったのですが
    [商品のコンディション (新品、中古商品、コレクター商品、新品同様の商品など)。]

    これは中古良い・非常に良い等の振り分けはできないということでしょうか。

    お手数おかけいたしますが、お時間ございましたらご対応のほどよろしくお願いいたします。

    • MrX より:

      https://images-na.ssl-images-amazon.com/images/G/09/associates/paapi/dg/index.html
      に仕様があるので確認ください。
      「ItemSearch における共通パラメータ」や「詳細サーチ構文」で確認するとConditionの説明は以下の通りですので、中古良い・非常に良い等の振り分けはできそうにないですね。
      Condition—商品のコンディションを指定できます。有効値は、 “All” 、 “New” 、 “Used” 、 “Collectible” 、 “Refurbished” です。デフォルト値は “New” です。コンディションによって返される商品の合計数が制限されるわけではありません。ただし、出品情報は、指定したコンディションの商品に制限されます。

  3. くろこ より:

    ご対応ありがとうございました。
    MWSの方でやれそうなので、そっちで行おうかと思います。あと、もう一点なのですが、APIは不安定とのネットで見かけて、実際こちらに記載されてる内容をいじってやってみたところ、200件を一括実行した所、結果半分も表示されないという形をなっております。
    自分もプログラムに問題もなるかと思いますが、何か解決策はございますでしょうか。

    何卒宜しくお願いしますm(__)m

    • MrX より:

      まず、速度が早すぎる可能性がありますので、Waitをかけるなどで調整してみてはいかがでしょう。
      一定時間内のアクセス数が通常制限されています。参考まで。

      • くろこ より:

        ご連絡ありがとうございます。
        一応、一つの商品検索したら、以下を行うとやっているのですが、これではよくないのでしょうか。
        Application.Wait (Now() + TimeValue(“00:00:02”))

        • MrX より:

          そうですね、ここら辺は色々試して見るしかないと思います。
          どれが最適かはチューニングしてみてください。
          MWSだと速度がほぼ保証されているので間違い無いですが、大口セラーアカウントが必要ですね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です