京东商品评论数据的获取需通过京东开放平台(JD Open Platform) 的官方 API 接口,主要适用于商家获取自有店铺商品评论或经授权的竞品评论数据。以下是接口申请流程、调用说明及实战示例,帮助开发者合规高效地获取评论数据:
一、接口申请前提与准备
1. 开发者资质要求
- 账号类型:需注册京东开放平台开发者账号(官网入口),个人开发者仅能调用基础接口,企业开发者可申请更高级权限。
- 认证要求:完成企业实名认证(需营业执照、法人信息等),未认证账号无法申请评论相关接口。
- 应用场景:需明确接口使用场景(如 “店铺运营分析”“用户反馈管理” 等),京东会审核场景合理性。
二、接口申请流程(详细步骤)
1. 注册与登录
- 访问京东开放平台,注册开发者账号并登录,进入 “开发者中心”。
2. 创建应用
- 点击 “创建应用”,选择应用类型(“自研应用” 用于自身业务,“第三方应用” 用于为其他商家提供服务)。
- 填写应用名称、描述、图标等信息,提交审核(1-3 个工作日审核通过)。
3. 申请评论接口权限
- 应用创建后,在 “接口管理” 中搜索 **“商品评价 API”**(核心接口为
jd.
item_review,适用于联盟场景;商家店铺评论用item_review)。 - 点击 “申请权限”,提交使用场景说明(需详细描述用途,如 “获取自有商品评论以优化产品”),等待京东审核(3-5 个工作日)。
4. 获取访问凭证
- 审核通过后,在应用详情页获取
appKey
和appSecret
(用于接口签名)。 - 调用接口前需通过
oauth2.0
获取access_token
(有效期 24 小时,需定期刷新)。
三、核心评论接口详解(以item_review为例)
1. 接口功能
获取商家自有店铺商品的评论列表,包含评论内容、评分、晒图、购买属性等信息。
2. 请求参数(核心)
参数名 | 类型 | 必须 | 说明 |
---|---|---|---|
access_token | string | 是 | 访问令牌(通过 oauth2.0 获取) |
productId | string | 是 | 商品 ID(京东商品唯一标识,如100012345678 ) |
pageNum | int | 是 | 页码(默认 1,最多支持 50 页) |
pageSize | int | 是 | 每页条数(1-100,默认 20) |
score | int | 否 | 评分筛选(0 = 全部,1=1 星,2=2 星,3=3 星,4=4 星,5=5 星) |
startTime | string | 否 | 开始时间(格式yyyy-MM-dd HH:mm:ss ,查询近 3 个月内数据) |
3. 签名生成规则
京东 API 采用HMAC-SHA256签名算法,步骤如下:
- 按参数名 ASCII 升序排列所有请求参数(含
appKey
、timestamp
等公共参数)。 - 拼接为
key=value&key=value
形式(如appKey=123&pageNum=1&...
)。 - 用
appSecret
对拼接字符串进行 HMAC-SHA256 加密,转为大写即为sign
。
四、接口调用示例(Python)
import requests
import time
import hmac
import hashlib
import urllib.parse
# 配置信息
app_key = "你的appKey"
app_secret = "你的appSecret"
access_token = "你的access_token"
product_id = "100012345678" # 目标商品ID
# 公共参数
params = {
"app_key": app_key,
"access_token": access_token,
"method": "biz.product.review.list", # 接口方法名
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"format": "json",
"v": "1.0",
"productId": product_id,
"pageNum": 1,
"pageSize": 20
}
# 生成签名
sorted_params = sorted(params.items(), key=lambda x: x[0])
sign_str = "&".join([f"{k}={urllib.parse.quote_plus(str(v))}" for k, v in sorted_params])
signature = hmac.new(app_secret.encode(), sign_str.encode(), hashlib.sha256).hexdigest().upper()
params["sign"] = signature
# 发送请求
url = "https://api.jd.com/routerjson"
response = requests.post(url, data=params)
result = response.json()
# 解析结果
if result.get("code") == 0:
reviews = result["result"]["reviews"] # 评论列表
for review in reviews:
print(f"用户昵称: {review['nickname']}")
print(f"评分: {review['score']}星")
print(f"评论内容: {review['content']}")
print(f"评论时间: {review['creationTime']}")
print(f"晒图数量: {len(review.get('images', []))}")
print("---")
else:
print(f"调用失败: {result.get('msg')},错误码: {result.get('code')}")
五、返回值核心字段解析
字段名 | 说明 | 业务价值 |
---|---|---|
score | 评分(1-5 星) | 统计商品平均评分,分析口碑 |
content | 评论内容(纯文本,无 HTML 标签) | 提取关键词(如 “质量好”“物流快”),优化产品 / 服务 |
creationTime | 评论时间(yyyy-MM-dd HH:mm:ss ) | 分析评论时间分布,判断近期产品问题 |
images | 晒图 URL 数组(如["https://img10.360buyimg.com/...jpg"] ) | 展示用户真实使用场景,辅助选品 |
productAttr | 购买属性(如 “颜色:黑色;尺寸:XL”) | 分析不同规格的用户评价差异 |
usefulVoteCount | 有用投票数(其他用户认为该评论有帮助的次数) | 筛选高价值评论,优先参考 |
六、使用限制与合规说明
- 调用频率限制:企业开发者默认配额:100 次 / 分钟,10000 次 / 天,超额返回429错误。如需更高配额,可在开放平台提交 “配额提升申请”,附业务场景说明。
- 数据范围限制:仅能获取自有店铺商品的评论(京东严格限制跨店铺数据访问)。评论数据最长可获取近 3 个月,历史数据无法追溯。
- 合规要求:数据仅可用于自身店铺运营分析,不得转售、公开或用于竞品攻击。需在应用中明确标注 “数据来源:京东开放平台”,遵守《京东开放平台开发者协议》。
- 错误处理:常见错误码:10001(权限不足)、20002(商品 ID 不存在)、40001(签名错误),需根据msg字段排查问题。
七、典型应用场景
- 用户反馈分析:通过评论关键词提取(如 “卡顿”“掉漆”),定位产品缺陷,推动迭代。
- 口碑监控:实时跟踪新商品的评分变化,当平均评分低于 4.0 时触发预警。
- 内容运营:筛选优质晒图评论,经用户授权后用于店铺详情页 “买家秀” 板块,提升转化率。
- 通过官方 API 获取京东商品评论,既能保证数据的合规性与稳定性,又能精准支撑店铺运营决策。实际使用中需注意签名正确性、频率控制及数据安全,避免因违规导致权限封禁。