You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python+AWS获取亚马逊评论存CSV遇410错误,求配置及解决指导

解决亚马逊评论获取410错误及AWS配置指南

问题原因

你遇到的410错误是因为亚马逊Product Advertising API(PA API)旧版本已完全停用。bottlenose库默认使用的PA API v2011-08-01版本早在2023年就被亚马逊废弃,调用后直接返回410 Gone状态码。

解决步骤

1. 完成AWS与亚马逊联盟的核心配置

要使用新版PA API 5.0,必须完成以下流程:

  • 注册并激活亚马逊联盟账号,获取你的Partner Tag(即原Associate Tag)。
  • 注册AWS账号,在IAM控制台创建新用户:
    • 为用户添加ProductAdvertisingAPIFullAccess权限策略。
    • 生成并妥善保存该用户的Access Key ID和Secret Access Key。
  • 前往亚马逊开发者控制台,创建PA API 5.0应用,关联你的AWS账号和联盟账号,确保Partner Tag与应用绑定生效。

2. 替换为PA API 5.0兼容的库

bottlenose不支持PA API 5.0,推荐使用amazon-pa-api5库,先执行安装:

pip install amazon-pa-api5

3. 修改代码示例(适配PA API 5.0)

以下是可直接运行的代码,用于获取评论并保存为CSV:

from amazon_pa_api5 import AmazonAPI
import pandas as pd

# 替换为你的真实配置信息
AWS_ACCESS_KEY_ID = "你的Access Key ID"
AWS_SECRET_ACCESS_KEY = "你的Secret Access Key"
PARTNER_TAG = "你的Partner Tag"
PARTNER_TYPE = "Associates"
REGION = "us-east-1"  # 对应亚马逊美国站,其他站点需调整(如欧洲站用eu-west-1)

# 初始化API客户端
amazon = AmazonAPI(
    aws_access_key=AWS_ACCESS_KEY_ID,
    aws_secret_key=AWS_SECRET_ACCESS_KEY,
    partner_tag=PARTNER_TAG,
    partner_type=PARTNER_TYPE,
    region=REGION
)

def get_product_reviews(asin):
    reviews_data = []
    try:
        # 循环获取最多10页评论(每页10条)
        for page in range(1, 11):
            response = amazon.get_reviews(
                Asin=asin,
                PageSize=10,
                PageNumber=page,
                SortBy="MostRecent"  # 可选排序规则:MostRecent/Helpful
            )
            
            # 解析返回结果
            if "Reviews" in response and "Review" in response["Reviews"]:
                for review in response["Reviews"]["Review"]:
                    reviews_data.append({
                        "Review ID": review.get("ReviewId"),
                        "Rating": review.get("Rating"),
                        "Review Text": review.get("Content"),
                        "Review Title": review.get("Title"),
                        "Author": review.get("Author").get("Name") if review.get("Author") else None
                    })
            else:
                break  # 无更多评论时终止循环
        
    except Exception as e:
        print(f"API请求错误: {str(e)}")
    
    return reviews_data

# 目标商品ASIN
asin = "B09N9JKM8S"
reviews = get_product_reviews(asin)

# 保存为CSV文件
if reviews:
    df = pd.DataFrame(reviews)
    df.to_csv("amazon_reviews.csv", index=False, encoding="utf-8-sig")
    print(f"成功保存{len(reviews)}条评论到amazon_reviews.csv")
else:
    print("未获取到有效评论")

4. 关键注意事项

  • 区域匹配:不同亚马逊站点对应不同AWS区域,比如日本站用ap-northeast-1,需根据目标站点调整REGION参数。
  • 调用限制:PA API 5.0有调用配额限制,避免短时间内大量请求导致被限流。
  • 权限验证:确保IAM用户的Access Key拥有PA API调用权限,且Partner Tag已正确关联联盟账号。

内容的提问来源于stack exchange,提问作者zouarv42

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 01:13:13