一、API接入核心流程
1. 注册与权限获取
- 账号注册:访问淘宝开放平台/万邦开放平台,使用淘宝账号登录,完成企业/个人实名认证。
- 应用创建:在控制台创建应用,填写名称、类型(如网页应用)、回调地址(需HTTPS备案),提交审核(1-3个工作日)。
- 权限申请:在API权限管理中申请
taobao.item.reviews.get
接口,需详细说明使用场景(如数据分析、竞品监控)。
2. 密钥与签名
- 获取凭证:审核通过后,在应用详情页获取App Key和App Secret。
- 签名算法: scss 体验AI代码助手 代码解读复制代码python def generate_sign(params, app_secret): sorted_params = sorted(params.items(), key=lambda x: x[0]) sign_str = app_secret for k, v in sorted_params: sign_str += f"{k}{v}" sign_str += app_secret return hmac.new( app_secret.encode(), sign_str.encode(), hashlib.sha256 ).hexdigest().upper()
二、API调用步骤
1. 请求参数构造
python
params = {
"method": "taobao.item.reviews.get",
"app_key": "YOUR_APP_KEY",
"num_iid": "商品ID", # 从商品URL提取,如https://item.taobao.com/item.htm?id=123456中的123456
"page_no": 1, # 页码
"page_size": 20, # 每页条数(最大100)
"rate_type": "1", # 1=好评,2=中评,3=差评
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"format": "json",
"v": "2.0"
}
params["sign"] = generate_sign(params, "YOUR_APP_SECRET")
2. 发送请求
python
response = requests.get(
"https://eco.taobao.com/router/rest",
params=params
)
data = response.json()
3. 响应解析
python
if data["code"] == "200":
for comment in data["item_reviews_get_response"]["reviews"]:
print(f"用户: {comment['user_nick']}")
print(f"评分: {comment['result']}")
print(f"评论: {comment['rate_content']}\n")
else:
print(f"错误码: {data['code']}, 消息: {data.get('msg', '未知错误')}")
三、高级功能与注意事项
1. 分页与筛选
- 分页控制:通过page_no和page_size参数分页获取数据。
- 筛选条件: rate_type:按评分类型筛选。 has_image:是否包含图片评论(需在fields中指定)。
2. 数据脱敏与合规
- 隐私保护:用户昵称等字段可能返回脱敏值(如
g**0
),禁止存储用户手机号、地址等敏感信息。 - 频率限制:免费版API每日调用上限500次,企业用户可申请提额。
3. 错误处理
- 常见错误码: 40001:签名错误(检查参数排序和加密算法)。 30001:权限不足(确认API权限已审核通过)。 10001:参数错误(检查商品ID格式和必填字段)。
四、实战案例:评论情感分析
python
import pandas as pd
from textblob import TextBlob
comments = []
for page in range(1, 5): # 获取前4页评论
params["page_no"] = page
response = requests.get("https://eco.taobao.com/router/rest", params=params)
data = response.json()
if data["code"] == "200":
comments.extend(data["item_reviews_get_response"]["reviews"])
# 情感分析
df = pd.DataFrame(comments)
df["sentiment"] = df["rate_content"].apply(lambda x: TextBlob(x).sentiment.polarity)
print(df.groupby("result")["sentiment"].mean()) # 按评分统计情感均值
五、附录
- 接口地址:
https://eco.taobao.com/router/rest
- 最新文档:淘宝开放平台
- 工具推荐:Postman(调试签名)、Python Requests库(自动化调用)
通过以上步骤,开发者可高效集成淘宝商品评论数据,实现竞品分析、舆情监控等业务需求。
作者:蓝倾
链接:https://juejin.cn/post/7525711687703625779
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。