一、接口功能与核心参数
亚马逊商品详情API(Product Advertising API)可通过商品唯一标识符(如ASIN)获取商品核心信息,包括标题、价格、主图链接、库存状态、评价数据等,适用于价格监控、竞品分析、库存管理等场景。 核心参数:
ASIN(亚马逊标准商品编号) ResponseGroup(指定返回字段范围,如Images,ItemAttributes,Offers) Marketplace(目标站点代码,如US代表美国站)。
二、开发流程与Python代码示例
注册开发者账号与权限申请
登录亚马逊开发者中心,创建应用并获取AccessKey和Secret Key。
环境准备
bash Copy Code pip install boto3 requests # 安装AWS SDK及HTTP请求库:ml-citation{ref="5" data="citationList"}
构建签名请求(AWS Signature V4)
python Copy Code import requests from datetime import datetime import hmac import hashlib
access_key = 'YOUR_ACCESS_KEY' secret_key = 'YOUR_SECRET_KEY' asin = 'B07DTH3N2X' # 示例ASIN endpoint = 'webservices.amazon.com' params = { 'Service': 'AWSECommerceService', 'Operation': 'ItemLookup', 'ResponseGroup': 'ItemAttributes,Offers,Images', 'IdType': 'ASIN', 'ItemId': asin, 'AWSAccessKeyId': access_key, 'Timestamp': datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ') }
生成规范化请求字符串并签名
sorted_params = sorted(params.items()) query = '&'.join([f'{k}={v}' for k, v in sorted_params]) string_to_sign = f"GET\n{endpoint}\n/onca/xml\n{query}" signature = hmac.new(secret_key.encode(), string_to_sign.encode(), hashlib.sha256).digest() signature_b64 = base64.b64encode(signature).decode()
发送请求
url = f"http://{endpoint}/onca/xml?{query}&Signature={signature_b64}" response = requests.get(url) print(response.text) # 输出XML格式响应:ml-citation{ref="4,7" data="citationList"}
三、响应数据处理与解析
返回数据通常为XML或JSON格式,以下为JSON示例:
json Copy Code { "ASIN": "B07DTH3N2X", "ItemTitle": "Example Product Title", "Price": {"Amount": "19.99", "CurrencyCode": "USD"}, "ImageURLs": { "Small": "example.com/small.jpg", "Large": "example.com/large.jpg" }, "StockStatus": "InStock" } # 数据结构参考:ml-citation{ref="3,7" data="citationList"}
四、注意事项与优化建议 频率限制:亚马逊API默认限制每秒1次请求,需合理设计缓存机制。 错误处理:捕获503 Service Unavailable等HTTP状态码,实现重试逻辑。 数据更新:商品价格、库存状态可能动态变化,建议每小时同步一次。 合规性:严格遵循亚马逊API使用政策,禁止爬虫抓取非公开数据。 五、高阶应用场景 竞品监控:通过批量ASIN查询,对比价格波动和库存变化。 自动化选品:结合热销榜单API,分析类目趋势与用户评论关键词。 多语言支持:调用翻译API实现商品描述的本地化适配。