# coding: utf-8 from urllib.request import quote import hashlib, hmac import base64 import sys import datetime import webbrowser ##argv = sys.argv ##argc = len(argv) ##if (argc < 2): ## print('enter ean code') ## quit() #リクエスト項目列挙1 service='Service=AWSECommerceService' key1='AWSAccessKeyId=xxxxxxxxxxxxxxxxxxxxxxx' key2='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' operation='Operation=ItemLookup' version='Version=2010-10-01' response='ResponseGroup=Medium' searchindex='SearchIndex=All' sign_head='GET\necs.amazonaws.jp\n/onca/xml\n' #タイムスタンプ生成 ymd=datetime.datetime.utcnow().strftime("Timestamp=%Y-%m-%d") hms=datetime.datetime.utcnow().strftime("T%H:%M:%SZ") hms=quote(hms) timestamp=ymd+hms #リクエスト項目列挙2 idtype='IdType=EAN' itemid='ItemId=%s' % 9784003361726 #EAN code request=[timestamp, service, operation, version, response, idtype, itemid, searchindex] #署名作成のためにソート、文字列連結 req_sorted =sorted(request) req_joined=key1+'&'+'&'.join(req_sorted) req_joined2=sign_head+req_joined #署名作成 hmac_digest =hmac.new(key2.encode('utf-8'),req_joined2.encode('utf-8'),hashlib.sha256).digest() base64_encoded = base64.b64encode(hmac_digest) result = quote(base64_encoded) #リクエスト作成 reqstr='http://ecs.amazonaws.jp/onca/xml?'+req_joined+'&Signature='+result print(reqstr) webbrowser.open_new_tab(reqstr)