接口概述
京东商品评论接口(以下简称「评论接口」)可用于获取指定商品的用户评价数据,包括评论内容、评分、用户昵称、时间戳等信息。该接口需通过京东开放平台(JOS)申请权限并完成认证后调用。
接口基础信息 接口地址:api.jd.com/routerjson 请求方式:POST 数据格式:JSON 认证方式:API Key + Signature 快速接入步骤
- 准备工作 注册京东开放平台账号 创建应用获取 app_key 和 app_secret 申请「商品评论接口」权限
- 请求参数说明 python Copy Code params = { "method": "jingdong.newware.verticalcomment.search", # 固定方法名 "app_key": "YOUR_APP_KEY", # 应用标识 "access_token": "USER_ACCESS_TOKEN", # 用户授权令牌 "timestamp": "2023-07-25 14:30:00", # 请求时间 "v": "2.0", # API版本 "skuId": 123456789, # 商品SKUID "page": 1, # 页码 "pageSize": 10, # 每页数量 "sign": "GENERATED_SIGNATURE" # 签名参数 }
Python 代码示例 签名生成函数 python Copy Code import hashlib import time
def generate_sign(params, app_secret): sorted_params = sorted(params.items()) query_str = app_secret + ''.join([f"{k}{v}" for k, v in sorted_params]) + app_secret return hashlib.md5(query_str.encode()).hexdigest().upper()
调用接口示例 python Copy Code import requests import json
def get_jd_comments(sku_id, page=1, page_size=10): app_key = "YOUR_APP_KEY" app_secret = "YOUR_APP_SECRET"
base_params = {
"method": "jingdong.newware.verticalcomment.search",
"app_key": app_key,
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"v": "2.0",
"skuId": sku_id,
"page": page,
"pageSize": page_size
}
# 生成签名
base_params["sign"] = generate_sign(base_params, app_secret)
# 发送请求
response = requests.post(
url="https://api.jd.com/routerjson",
data=base_params,
headers={"Content-Type": "application/x-www-form-urlencoded"}
)
if response.status_code == 200:
return response.json()
else:
return {"error": f"Request failed with status {response.status_code}"}
示例调用
comments_data = get_jd_comments(sku_id=100000123456) print(json.dumps(comments_data, indent=2, ensure_ascii=False))
响应数据结构
成功响应示例:
json Copy Code { "code": 0, "message": "success", "data": { "total": 1500, "page": 1, "comments": [ { "userNick": "jd_***def", "content": "商品质量非常好,物流速度快", "score": 5, "commentTime": "2023-07-20 14:30:12", "replyCount": 2, "usefulVoteCount": 15 }, // 更多评论数据... ] } }
关键技术点解析
- 签名机制
京东API使用MD5签名算法:
按参数名称升序排列 拼接为 app_secret+key1value1key2value2...+app_secret 格式 生成32位大写MD5值
- 分页处理
通过循环调用实现全量获取:
python Copy Code def get_all_comments(sku_id): all_comments = [] page = 1 while True: result = get_jd_comments(sku_id, page=page) if not result.get("data") or not result["data"].get("comments"): break all_comments.extend(result["data"]["comments"]) page += 1 return all_comments
注意事项 频率限制:普通应用默认QPS≤50 缓存策略:建议本地缓存高频商品评论 异常处理:需处理 1004(签名错误)、1011(频率超限) 等错误码 字段说明:注意用户昵称等字段包含脱敏星号(*) 总结
通过本文介绍的方法,开发者可快速接入京东商品评论接口。建议根据业务需求:
添加自动重试机制 结合商品ID批量处理 实现定时增量同步 对评论文本进行情感分析等扩展处理