python boto を使ってAmazon MWSに問い合わせる [python]
先日、署名まで自分で作ってAmazon MWSを使うスクリプトを作ったが、
やはり、MWSの様々な機能を使うためには
ライブラリのお世話になったほうが便利である
そこで、前回、マニュアルの途中で使うことを諦めたbotoに再挑戦した
かなり手こずったので、自分のメモとして書き留めておく
まず、ハマったのはサーバーの接続先である
デフォルトでは当然USのサーバーに問い合わせるのだが
こちらは日本のサーバーに問い合わせたい
あれこれいじっているうちに
boto.hostという属性を見つけて、それの値がUSのドメインだったので
日本のドメインに書き換えてみたら、日本のサーバーに繋がった
サーバーから答えが返ってきたときには非常に嬉しかったが、
今度はその返ってきたデータの取り出し方がわからない
本来はXML形式の文字列のはずなのだが、botoで表示されるのは
pythonの辞書のようでもあり、そうでないようでもある不思議な形式である
ネット上を探したら、私と同様に「どうやってデータを取り出すんだ?」と
質問している人が何人かいたのだが、回答している人が見当たらない
さんざん探しまわって、やっと見つけたのは、
何と、本家botoのテストプログラムだった
(最初に確認しろよ>自分)
どうりで、質問に対する回答がないわけである
python使いなら、それくらい自分で確認しろということなのだろう
データを取り出すポイントは
_result という属性で、これの後にXMLの開始タグを順番に並べていくと
目的のデータまで辿り着くことができる
そうやって何とか書いたのが以下のスクリプトである
商品の中のlowest offer listing for asin で
商品の出品価格を問い合わせるものである
前回作ったコードと比べると数分の1の長さである
やはり、ライブラリを使うと簡単だ
このスクリプトの出力結果は以下の通り。
最安値から5人の出品者の出品価格が取得できた
コンディション New 合計金額1100.00円 商品価格843.00円 送料257.00円
コンディション Mint 合計金額1607.00円 商品価格1350.00円 送料257.00円
コンディション Mint 合計金額1607.00円 商品価格1350.00円 送料257.00円
コンディション Mint 合計金額1617.00円 商品価格1360.00円 送料257.00円
コンディション Mint 合計金額1657.00円 商品価格1400.00円 送料257.00円
コンディション Mint 合計金額1696.00円 商品価格1439.00円 送料257.00円
スポンサードリンク
やはり、MWSの様々な機能を使うためには
ライブラリのお世話になったほうが便利である
そこで、前回、マニュアルの途中で使うことを諦めたbotoに再挑戦した
かなり手こずったので、自分のメモとして書き留めておく
まず、ハマったのはサーバーの接続先である
デフォルトでは当然USのサーバーに問い合わせるのだが
こちらは日本のサーバーに問い合わせたい
あれこれいじっているうちに
boto.hostという属性を見つけて、それの値がUSのドメインだったので
日本のドメインに書き換えてみたら、日本のサーバーに繋がった
サーバーから答えが返ってきたときには非常に嬉しかったが、
今度はその返ってきたデータの取り出し方がわからない
本来はXML形式の文字列のはずなのだが、botoで表示されるのは
pythonの辞書のようでもあり、そうでないようでもある不思議な形式である
ネット上を探したら、私と同様に「どうやってデータを取り出すんだ?」と
質問している人が何人かいたのだが、回答している人が見当たらない
さんざん探しまわって、やっと見つけたのは、
何と、本家botoのテストプログラムだった
(最初に確認しろよ>自分)
どうりで、質問に対する回答がないわけである
python使いなら、それくらい自分で確認しろということなのだろう
データを取り出すポイントは
_result という属性で、これの後にXMLの開始タグを順番に並べていくと
目的のデータまで辿り着くことができる
そうやって何とか書いたのが以下のスクリプトである
商品の中のlowest offer listing for asin で
商品の出品価格を問い合わせるものである
前回作ったコードと比べると数分の1の長さである
やはり、ライブラリを使うと簡単だ
# -*- coding: utf-8 -*-
from boto.mws import connection
MarketPlaceID = 'A1VC38T7YXB528'
MerchantID = '*********'
AccessKeyID = '*********************'
SecretKey = '**********************************'
conn = connection.MWSConnection(
aws_access_key_id=AccessKeyID,
aws_secret_access_key=SecretKey,
Merchant=MerchantID)
conn.host='mws.amazonservices.jp'
def amazon_mws_boto_lowest_offer_asin(asin_list):
response = conn.get_lowest_offer_listings_for_asin(MarketplaceId='A1VC38T7YXB528',
ASINList=asin_list)
response2 = response._result[0].Product.LowestOfferListings.LowestOfferListing
for shuppinsha in response2:
joutai = shuppinsha.Qualifiers.ItemSubcondition
land_price = shuppinsha.Price.LandedPrice.Amount
listing_price = shuppinsha.Price.ListingPrice.Amount
shipping = shuppinsha.Price.Shipping.Amount
print "コンディション {0} 合計金額{1}円 商品価格{2}円 送料{3}
円".format(joutai,land_price,listing_price,shipping)
if __name__ == '__main__':
asin_list=['B00XVHUFQ8']
amazon_mws_boto_lowest_offer_asin(asin_list)
このスクリプトの出力結果は以下の通り。
最安値から5人の出品者の出品価格が取得できた
コンディション New 合計金額1100.00円 商品価格843.00円 送料257.00円
コンディション Mint 合計金額1607.00円 商品価格1350.00円 送料257.00円
コンディション Mint 合計金額1607.00円 商品価格1350.00円 送料257.00円
コンディション Mint 合計金額1617.00円 商品価格1360.00円 送料257.00円
コンディション Mint 合計金額1657.00円 商品価格1400.00円 送料257.00円
コンディション Mint 合計金額1696.00円 商品価格1439.00円 送料257.00円
スポンサードリンク
2015-06-14 06:55
nice!(0)
コメント(0)
トラックバック(0)
コメント 0