一、API接入准备
-
注册开发者账号
- 访问Amazon Product Advertising API注册页面
- 获取Key和Secret
-
API基础参数
base_params = { 'Service': 'AWSECommerceService', 'AWSAccessKeyId': 'YOUR_ACCESS_KEY', 'AssociateTag': 'YOUR_TAG', 'Operation': 'ItemSearch', 'ResponseGroup': 'ItemAttributes,Offers', 'SearchIndex': 'All', 'Keywords': '', # 预留关键词参数 'Timestamp': datetime.utcnow().isoformat() }
二、关键词搜索实现
1. 请求签名生成
def generate_signature(params):
query_string = urllib.parse.urlencode(sorted(params.items()))
string_to_sign = f"GET\necs.amazonaws.com\n/onca/xml\n{query_string}"
signature = base64.b64encode(hmac.new(
SECRET_KEY.encode(),
string_to_sign.encode(),
hashlib.sha256).digest())
return urllib.parse.quote(signature)
2. 完整请求示例
import requests
def search_amazon(keywords):
params = base_params.copy()
params['Keywords'] = keywords
params['Signature'] = generate_signature(params)
response = requests.get(
"https://ecs.amazonaws.com/onca/xml",
params=params)
return parse_response(response.text) # 需实现XML解析逻辑
三、最佳实践建议
-
请求频率控制
- 遵守1秒/请求的速率限制
- 使用缓存机制存储热门关键词结果
-
结果优化技巧
# 建议添加的优化参数 optimization_params = { 'Sort': 'relevancerank', # 按相关度排序 'Availability': 'Available' # 只显示有货商品 } -
错误处理
try: results = search_amazon("wireless headphones") except Exception as e: logging.error(f"API请求失败: {str(e)}") # 实现重试逻辑
四、注意事项
- 每月API调用次数限制(免费版约5000次/月)
- 2025年新增的合规要求:需在结果中标注数据来源
- 推荐使用官方SDK(amazon-paapi5)简化开发