0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

亚马逊获取商品评论的API接口

万邦 来源:jf_79933741 作者:jf_79933741 2025-11-05 14:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

大家好!今天我将详细介绍如何通过亚马逊的API接口获取商品评论数据。作为一名开发人员,你可能需要这些数据来构建价格比较工具、分析产品口碑或开发推荐系统。亚马逊提供了Product Advertising API (PAAPI) 作为主要接口,支持获取商品信息,包括评论。但请注意,API有严格的使用限制(如频率限制和认证要求),开发者需遵守亚马逊的条款,避免滥用。下面我将逐步指导你完成整个过程,确保内容真实可靠。

1. API概述

亚马逊的Product Advertising API (PAAPI) 允许开发者通过RESTful请求获取商品数据。对于评论,PAAPI v5版本支持返回评论摘要、评分和链接,但无法直接获取所有原始评论内容(亚马逊为保护用户隐私,限制了详细数据的访问)。关键功能包括:

操作类型:使用GetItems或SearchItems操作,设置参数来请求评论数据。

响应格式:返回JSON数据,包含评论数、平均评分等。

限制:免费账户每天有少量调用配额(例如5000次),超出需付费;且必须通过认证(AWS签名)。

如果涉及分页计算(如处理大量评论),可用公式表示页数。设总评论数为$n$,每页显示$k$条评论,则总页数$p$为: $$ p = leftlceil frac{n}{k} rightrceil $$ 其中$lceil cdot rceil$表示向上取整函数。实际API调用中,需使用ItemPage参数控制分页。

2. 前提条件

在调用API前,需完成以下步骤:

注册开发者账户

访问亚马逊开发者中心

创建账户并登录,进入“Product Advertising API”控制台。

获取安全凭证

生成Access Key ID和Secret Access Key(保存好,勿泄露)。

绑定AWS IAM角色(用于签名认证)。

了解API文档

参考官方文档:PAAPI v5指南,重点查看ReviewInfo响应组。

3. 调用API示例(Python代码)

下面使用Python和requests库演示如何调用API获取商品评论。示例中,我们将获取商品ASIN(亚马逊标准识别号)为B08N5WRWNW(示例商品)的评论摘要。代码包括:

生成AWS签名(基于HMAC-SHA256)。

设置请求参数,如PartnerTag(你的联盟ID)和Resources(指定返回评论字段)。

处理JSON响应。

import requests
import datetime
import hmac
import hashlib
import urllib.parse

# 配置参数 - 替换为你的凭证
access_key = 'YOUR_ACCESS_KEY'
secret_key = 'YOUR_SECRET_KEY'
partner_tag = 'YOUR_PARTNER_TAG'  # 联盟ID
region = 'us-east-1'  # API区域
host = 'webservices.amazon.com'
endpoint = '/paapi5/getitems'

# 生成签名
def generate_signature():
    # 生成时间戳和请求参数
    amz_date = datetime.datetime.utcnow().strftime('%Y%m%dT%H%M%SZ')
    params = {
        'Operation': 'GetItems',
        'ItemIds': ['B08N5WRWNW'],  # 商品ASIN
        'Resources': ['CustomerReviews.Count', 'CustomerReviews.StarRating'],  # 请求评论数据
        'PartnerTag': partner_tag,
        'PartnerType': 'Associates',
        'Marketplace': 'www.amazon.com'
    }
    # 构建规范请求
    canonical_querystring = urllib.parse.urlencode(params, doseq=True)
    canonical_request = f'POSTn{endpoint}nnhost:{host}nx-amz-date:{amz_date}nnhost;x-amz-daten{hashlib.sha256(canonical_querystring.encode()).hexdigest()}'
    # 计算签名
    string_to_sign = f'AWS4-HMAC-SHA256n{amz_date}n{datetime.datetime.utcnow().strftime("%Y%m%d")}/{region}/ProductAdvertisingAPI/aws4_requestn{hashlib.sha256(canonical_request.encode()).hexdigest()}'
    signing_key = hmac.new(('AWS4' + secret_key).encode(), datetime.datetime.utcnow().strftime("%Y%m%d").encode(), hashlib.sha256).digest()
    signing_key = hmac.new(signing_key, region.encode(), hashlib.sha256).digest()
    signing_key = hmac.new(signing_key, 'ProductAdvertisingAPI'.encode(), hashlib.sha256).digest()
    signing_key = hmac.new(signing_key, 'aws4_request'.encode(), hashlib.sha256).digest()
    signature = hmac.new(signing_key, string_to_sign.encode(), hashlib.sha256).hexdigest()
    return amz_date, signature, params

# 发送请求
def get_reviews():
    amz_date, signature, params = generate_signature()
    headers = {
        'Host': host,
        'X-Amz-Date': amz_date,
        'Authorization': f'AWS4-HMAC-SHA256 Credential={access_key}/{datetime.datetime.utcnow().strftime("%Y%m%d")}/{region}/ProductAdvertisingAPI/aws4_request, SignedHeaders=host;x-amz-date, Signature={signature}',
        'Content-Type': 'application/json'
    }
    url = f'https://{host}{endpoint}'
    response = requests.post(url, headers=headers, json=params)
    if response.status_code == 200:
        return response.json()
    else:
        raise Exception(f'API调用失败: {response.status_code}, {response.text}')

# 主函数
if __name__ == '__main__':
    data = get_reviews()
    print("API响应数据:")
    print(data)
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

4. 解析响应数据

API响应为JSON格式。关键字段在ItemsResult下:

CustomerReviews.Count:评论总数。

CustomerReviews.StarRating:平均星级(范围1-5)。

CustomerReviews.URL:评论页链接(用于获取详细内容)。

示例解析代码(接续上述Python脚本):

# 提取评论数据
def parse_reviews(data):
    if 'ItemsResult' in data:
        item = data['ItemsResult']['Items'][0]  # 假设第一个商品
        review_count = item.get('CustomerReviews', {}).get('Count', 0)
        avg_rating = item.get('CustomerReviews', {}).get('StarRating', 0.0)
        review_url = item.get('CustomerReviews', {}).get('URL', '')
        print(f"评论总数: {review_count}")
        print(f"平均评分: {avg_rating}")
        print(f"评论页链接: {review_url}")
    else:
        print("未找到评论数据")

# 在main中调用
if __name__ == '__main__':
    data = get_reviews()
    parse_reviews(data)
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

输出示例:

评论总数: 120
平均评分: 4.5
评论页链接: https://www.amazon.com/product-reviews/B08N5WRWNW
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

5. 注意事项

频率限制:免费账户每日调用上限约5000次。超出可能导致封禁。建议使用指数退避策略重试,计算公式为$ text{重试间隔} = text{base} times 2^{text{attempt}} $秒(其中$text{base}$为初始间隔)。

数据限制:PAAPI不返回完整评论文本,只提供摘要和链接。要获取详细评论,需结合网页爬虫(但需注意robots.txt和政策)。

认证安全:务必保护Access Key;使用环境变量存储凭证。

错误处理:常见错误如InvalidParameter(参数错误)或RequestThrottled(超限)。检查响应中的__type字段。

替代方案:如果PAAPI不满足需求,可考虑亚马逊MWS(针对卖家),但需额外权限。

结语

通过亚马逊PAAPI,你可以高效获取商品评论的核心数据,助力你的项目开发。记住,始终遵守API使用条款,并测试代码在沙盒环境。如果你有更多问题(如处理分页或优化请求),欢迎在评论区讨论!

​审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    2467

    浏览量

    66992
  • 亚马逊
    +关注

    关注

    8

    文章

    2735

    浏览量

    85880
  • API接口
    +关注

    关注

    1

    文章

    115

    浏览量

    11278
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    洞察电商数据:淘宝商品评论API数据模型

    洞察电商数据:淘宝商品评论API数据模型 淘宝商品评论API是电商竞品分析、用户痛点挖掘、口碑监测、选品调研的核心接口,用于合规
    的头像 发表于 03-27 16:40 170次阅读

    通过商品ID调用1688商品评论API

    ​ 在1688开放平台中,获取指定商品评论数据是常见的业务需求。虽然官方API文档会提供最权威的接口说明,但通常可以通过
    的头像 发表于 03-23 16:02 182次阅读
    通过<b class='flag-5'>商品</b>ID调用1688<b class='flag-5'>商品评论</b><b class='flag-5'>API</b>

    京东平台商品评论API接口技术指南

    ​ 一、接口概述 通过京东开放平台的商品评论API,开发者可获取指定商品的用户评价数据。该接口
    的头像 发表于 03-20 17:19 803次阅读
    京东平台<b class='flag-5'>商品评论</b><b class='flag-5'>API</b><b class='flag-5'>接口</b>技术指南

    如何通过淘宝API接口根据商品ID获取商品评论

    ​ 淘宝开放平台(Taobao Open Platform)为开发者提供了丰富的API接口,允许开发者通过商品ID获取商品评论数据。这在电商
    的头像 发表于 03-20 17:18 671次阅读
    如何通过淘宝<b class='flag-5'>API</b><b class='flag-5'>接口</b>根据<b class='flag-5'>商品</b>ID<b class='flag-5'>获取</b><b class='flag-5'>商品评论</b>

    京东商品评论API接口技术实践指南

    = response.json()['access_token']   二、核心API调用 商品评论接口路径: https://api.jd.com/routerjson?metho
    的头像 发表于 03-12 16:32 203次阅读
    京东<b class='flag-5'>商品评论</b><b class='flag-5'>API</b><b class='flag-5'>接口</b>技术实践指南

    京东商品评论API(jd.item_review)开发指南

    一、前言 在电商行业竞争日趋激烈的当下,商品评价数据已成为商家优化产品、提升服务质量以及制定营销策略的关键依据。京东商品评论 API 作为京东开放平台(JOS)提供的核心数据接口,能够
    的头像 发表于 02-04 11:08 260次阅读

    淘宝商品评论API接口(taobao.item_review)指南

    ),为开发者提供了合规、稳定、结构化的评论数据获取方式,相较于非正规的爬取手段,能有效规避数据安全与平台规则风险。本文作为技术指南,将从接口基础认知、Python 实战调用、合规注意事项等维度,帮助开发者快速掌握淘宝
    的头像 发表于 01-22 16:14 1085次阅读

    1688商品评论API使用指南

    一、前言 1688(阿里巴巴批发网)商品评论 API 是用于获取平台批发商品买家评论数据的核心接口
    的头像 发表于 12-24 13:30 695次阅读

    淘宝商品评论电商API接口:提升销量与用户评论的深入解析

    一、利用淘宝商品评论电商API接口了解用户需求 首先,商家需要了解淘宝商品评论电商API接口的基
    的头像 发表于 11-13 10:11 471次阅读

    京东API实时接口:京东商品评论数据接口

    ​​京东商品评论数据接口(通常表示为 JD.item_review)是京东开放平台提供的一种API,它允许开发者获取京东商品的用户
    的头像 发表于 11-11 11:21 697次阅读

    亚马逊获取商品详情API接口指南

    ​  在电商开发中,获取商品详情是核心需求之一。亚马逊提供了一套强大的API接口,允许开发者高效提取商品
    的头像 发表于 11-05 14:45 589次阅读
    <b class='flag-5'>亚马逊</b><b class='flag-5'>获取</b><b class='flag-5'>商品</b>详情<b class='flag-5'>API</b><b class='flag-5'>接口</b>指南

    亚马逊商品评论API接口技术指南

    ​ 一、API接口概述 亚马逊商品评论API(Product Reviews API)允许开发者
    的头像 发表于 10-21 15:40 646次阅读
    <b class='flag-5'>亚马逊</b><b class='flag-5'>商品评论</b><b class='flag-5'>API</b><b class='flag-5'>接口</b>技术指南

    用快手电商 API 实现快手小店商品评论情感分析

    API接口,允许开发者访问快手小店的数据,包括商品评论。本文将一步步指导您如何利用快手电商API获取
    的头像 发表于 08-26 15:08 740次阅读
    用快手电商 <b class='flag-5'>API</b> 实现快手小店<b class='flag-5'>商品评论</b>情感分析

    电商 API 接口:多平台商品评论分析的利器

    强大工具。本文将逐步介绍如何利用 API 实现高效的多平台商品评论分析,帮助商家和研究者快速获取洞察。 什么是电商 API 接口
    的头像 发表于 08-11 14:53 1021次阅读
    电商 <b class='flag-5'>API</b> <b class='flag-5'>接口</b>:多平台<b class='flag-5'>商品评论</b>分析的利器

    品评论获取API接口

      在当今电商和数据分析领域,产品评论是宝贵的用户反馈来源。手动收集评论耗时且易出错,而通过API接口自动化获取
    的头像 发表于 07-25 14:26 620次阅读
    产<b class='flag-5'>品评论</b><b class='flag-5'>获取</b><b class='flag-5'>API</b><b class='flag-5'>接口</b>