ITPub博客

首页 > 大数据 > 数据分析 > 批量获取亚马逊商品SKU商品规格调用流程

批量获取亚马逊商品SKU商品规格调用流程

原创 数据分析 作者:OneLafite 时间:2025-08-07 17:27:56 0 删除 编辑

一、注册与认证

  1. 注册亚马逊开发者账号
    • 访问 亚马逊开发者中心,使用企业邮箱注册账号(个人账号可能权限受限)。
    • 创建  安全配置文件(Security Profile),获取  Client ID 和  Client Secret,用于后续OAuth 2.0认证。
  2. 申请API访问权限
    • 根据需求选择API类型:
      • Product Advertising API(PA-API):适合获取商品详情、搜索列表,需提交使用场景说明(如竞品监控、价格追踪)。
      • Selling Partner API(SP-API):适合卖家操作(如库存管理、订单处理),需提供卖家账号信息。
    • 提交申请后,亚马逊会审核并分配  Access Key ID 和  Secret Access Key(用于签名请求)。
  3. 获取OAuth 2.0令牌
    • 使用  Client ID、 Client Secret 和  Refresh Token(通过授权流程获取)定期刷新  Access Token(有效期24小时)。
    • 示例请求(Python):
      pythonimport requestsdef refresh_access_token(client_id, client_secret, refresh_token):url = "https://api.amazon.com/auth/o2/token"data = {"grant_type": "refresh_token","refresh_token": refresh_token,"client_id": client_id,"client_secret": client_secret}response = requests.post(url, data=data)return response.json()["access_token"]

二、构建批量请求

  1. 选择批量查询接口
    • PA-API:使用  ListCatalogItems 接口,通过  MarketplaceId(如美国站  ATVPDKIKX0DER)和  Query(关键词或ASIN列表)批量获取商品。
    • SP-API:使用  /products/v0/listings/{sellerId} 接口,通过卖家ID和ASIN列表获取商品规格。
  2. 设置请求参数
    • 必需参数:
      • MarketplaceId:目标站点ID。
      • Query:ASIN列表(如  ["B000012345", "B000067890"])。
      • MaxResultsPerPage:每页最多返回1000条数据。
    • 可选参数:
      • IncludedData:指定返回字段(如  images,price,description,attributes)。
      • SortBy:按价格、评分等排序。
  3. 生成签名(PA-API示例)
    • PA-API需对请求参数进行签名,确保安全性:
      pythonimport hmacimport hashlibimport base64from datetime import datetimedef generate_signature(params, secret_key):sorted_params = sorted(params.items())query_string = "&".join([f"{k}={v}" for k, v in sorted_params])signature = hmac.new(secret_key.encode(),query_string.encode(),hashlib.sha256).digest()return base64.b64encode(signature).decode()params = {"Service": "AWSECommerceService","Operation": "ListCatalogItems","MarketplaceId": "ATVPDKIKX0DER","Query": "B000012345,B000067890","AWSAccessKeyId": "YOUR_ACCESS_KEY","Timestamp": datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ")}params["Signature"] = generate_signature(params, "YOUR_SECRET_KEY")

三、发送请求与处理响应

  1. 发送HTTP请求
    • 使用GET或POST方式发送请求到亚马逊API服务器:
      pythonimport requestsdef batch_get_products(asins, marketplace_id, access_token):url = "https://api.amazon.com/products/v0/listings"headers = {"Authorization": f"Bearer {access_token}","x-amz-access-token": access_token}params = {"MarketplaceId": marketplace_id,"Query": ",".join(asins),"IncludedData": "images,price,attributes"}response = requests.get(url, headers=headers, params=params)return response.json()
  2. 解析响应数据
    • 响应通常为JSON格式,包含商品SKU、标题、价格、库存、规格等字段:
      json{"Items": [{"ASIN": "B000012345","Title": "Example Product","Price": {"Amount": 199.99,"CurrencyCode": "USD"},"Attributes": {"Color": "Black","Size": "XL","Material": "Cotton"},"Images": [{"URL": "https://m.media-amazon.com/images/I/51Zymoq7UnL.jpg","Height": 500,"Width": 500}]}]}
  3. 错误处理与重试
    • 检查响应状态码:
      • 200:成功,解析数据。
      • 403:权限不足,检查API密钥或令牌。
      • 429:频率超限,实现指数退避重试(如等待5秒后重试)。

四、优化与扩展

  1. 分页处理
    • 若商品数量超过单页限制(如1000条),需循环请求下一页:
      pythondef batch_get_all_products(asins, marketplace_id, access_token):all_data = []page_size = 1000for i in range(0, len(asins), page_size):page_asins = asins[i:i + page_size]response = batch_get_products(page_asins, marketplace_id, access_token)all_data.extend(response["Items"])return all_data
  2. 数据存储与更新
    • 将获取的数据存储到数据库(如MySQL、MongoDB)或CSV文件,便于后续分析:
      pythonimport csvdef save_to_csv(data, filename="products.csv"):with open(filename, "w", newline="", encoding="utf-8") as f:writer = csv.writer(f)writer.writerow(["ASIN", "Title", "Price", "Color", "Size"])for item in data:writer.writerow([item["ASIN"],item["Title"],item["Price"]["Amount"],item["Attributes"].get("Color", ""),item["Attributes"].get("Size", "")])
  3. 结合第三方服务
    • 若亚马逊API限制较多,可考虑使用第三方服务(如Pangolin Scrape API)简化开发,但需注意合规性。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70046834/viewspace-3092983/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
专业研发电商平台API开放接口,搭建独立站系统,反向海淘代购系统十年+,https://o0b.cn/lafite。

注册时间:2025-06-20

  • 博文量
    231
  • 访问量
    258408