首页 > 大数据 > 数据分析 > 批量获取亚马逊商品SKU商品规格调用流程
一、注册与认证
Client ID 和
Client Secret,用于后续OAuth 2.0认证。Access Key ID 和
Secret Access Key(用于签名请求)。Client ID、
Client Secret 和
Refresh Token(通过授权流程获取)定期刷新
Access Token(有效期24小时)。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"]ListCatalogItems 接口,通过
MarketplaceId(如美国站
ATVPDKIKX0DER)和
Query(关键词或ASIN列表)批量获取商品。/products/v0/listings/{sellerId} 接口,通过卖家ID和ASIN列表获取商品规格。MarketplaceId:目标站点ID。Query:ASIN列表(如
["B000012345", "B000067890"])。MaxResultsPerPage:每页最多返回1000条数据。IncludedData:指定返回字段(如
images,price,description,attributes)。SortBy:按价格、评分等排序。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")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()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}]}]}200:成功,解析数据。403:权限不足,检查API密钥或令牌。429:频率超限,实现指数退避重试(如等待5秒后重试)。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
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", "")])
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70046834/viewspace-3092983/ ,如需转载,请注明出处,否则将追究法律责任。