# 亚马逊商品关键词搜索API开发指南

57 阅读1分钟

一、API接入准备

  1. 注册开发者账号

03b7a38ac6e44c30ba40d3dd14fb7f77.png

  1. 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. 请求频率控制

    • 遵守1秒/请求的速率限制
    • 使用缓存机制存储热门关键词结果
  2. 结果优化技巧

    # 建议添加的优化参数
    optimization_params = {
        'Sort': 'relevancerank',  # 按相关度排序
        'Availability': 'Available'  # 只显示有货商品
    }
    
  3. 错误处理

    try:
        results = search_amazon("wireless headphones")
    except Exception as e:
        logging.error(f"API请求失败: {str(e)}")
        # 实现重试逻辑
    

四、注意事项

  • 每月API调用次数限制(免费版约5000次/月)
  • 2025年新增的合规要求:需在结果中标注数据来源
  • 推荐使用官方SDK(amazon-paapi5)简化开发