如何通过API获取淘宝评论?实战讲解
一、API权限申请与准备
- 注册开发者账号
- 访问万邦开放平台,完成企业或个人实名认证。
- 创建应用并获取凭证
- 在控制台创建应用,选择“商品评价”相关权限(如
taobao.item.evaluate.get
)。 - 通过审核后获取App Key和App Secret(后续调用接口的身份凭证)。
- 在控制台创建应用,选择“商品评价”相关权限(如
- API权限说明
- 需申请
taobao.item.evaluate.get
(淘宝商品评价)或taobao.traderates.get
(天猫商品评价)接口权限。 - 权限审核需说明使用场景(如舆情分析、用户研究),确保合规性。
- 需申请
二、API调用实战步骤
- 构造请求参数
- 必填参数:
num_iid
:商品ID(从淘宝商品详情页URL中提取,如id=123456
)。page_no
:页码(从1开始)。page_size
:每页返回的评论数量(最大支持100条)。
- 可选参数:
type
:评论类型(all
全部,good
好评,neutral
中评,bad
差评)。order
:排序方式(time
按时间,score
按评分)。
- 必填参数:
- 生成签名
- 目的:确保请求合法性,防止数据篡改。
- 方法:按API文档规则对参数排序,使用HMAC-SHA256算法加密,拼接
App Secret
生成签名。
- 发送HTTP请求
- 使用GET/POST方法调用接口,需在请求头或参数中添加签名和认证信息。
三、Python示例代码
python
import requests | |
import hmac | |
import hashlib | |
import time | |
# 配置App Key和App Secret(替换为实际值) | |
app_key = "YOUR_APP_KEY" | |
app_secret = "YOUR_APP_SECRET" | |
# 请求参数 | |
params = { | |
"method": "taobao.item.evaluate.get", | |
"app_key": app_key, | |
"num_iid": "123456789", # 替换为实际商品ID | |
"page_no": 1, | |
"page_size": 20, | |
"type": "all", # 可选:good/neutral/bad | |
"timestamp": str(int(time.time())), | |
"format": "json", | |
"v": "2.0", | |
"sign_method": "hmac" | |
} | |
# 生成签名 | |
def generate_sign(params, app_secret): | |
sorted_params = sorted(params.items(), key=lambda x: x[0]) | |
query_str = "".join([f"{k}{v}" for k, v in sorted_params if k != "sign"]) | |
string_to_sign = app_secret + query_str + app_secret | |
signature = hmac.new(app_secret.encode(), string_to_sign.encode(), hashlib.sha256).hexdigest() | |
return signature | |
params["sign"] = generate_sign(params, app_secret) | |
# 发送请求 | |
response = requests.get("https://eco.taobao.com/router/rest", params=params) | |
# 处理响应 | |
if response.status_code == 200: | |
data = response.json() | |
comments = data.get("item_evaluate_get_response", {}).get("evaluates", {}).get("evaluate", []) | |
for comment in comments: | |
print(f"用户昵称: {comment.get('user_nick')}") | |
print(f"评分: {comment.get('rate_score')}") | |
print(f"评论内容: {comment.get('content')}") | |
print(f"评论时间: {comment.get('rate_date')}\n") | |
else: | |
print(f"请求失败,状态码: {response.status_code}") |
四、数据处理与注意事项
- 数据清洗
- 去除广告、无效字符,使用NLP技术(如jieba分词)进行情感分析,提取关键词(如“质量好”“物流慢”)。
- 存储与分析
- 结构化数据(评分、时间)存入MySQL,非结构化文本(评论内容)存入MongoDB。
- 生成情感趋势图或词云,辅助决策。
- 合规与风控
- 遵守API频率限制(默认500次/天),避免触发限流。
- 禁止存储用户隐私信息(如手机号、地址),遵守《淘宝开放平台协议》。
- 错误处理
- 添加重试逻辑(如遇到网络超时或限流错误,自动重试3次)。
- 记录错误日志,便于排查问题。
五、典型应用场景
- 舆情监测
- 实时跟踪商品评价,识别负面反馈(如“色差大”“质量差”),及时优化产品。
- 竞品分析
- 采集竞品评论数据,对比用户满意度(如评分分布、高频关键词)。
- 供应链优化
- 根据高频差评(如“物流慢”)调整合作物流,提升用户体验。
- 营销决策
- 提取用户关注的功能点(如“续航久”“拍照清晰”),用于广告文案或页面设计。
六、资源推荐
- 官方文档:开放平台-文档中心
- 开发者社区:CSDN、知乎专栏(搜索“淘宝API实战”)
- 工具库:
topapi
(淘宝官方Python SDK)
通过上述步骤,开发者可高效获取并分析淘宝评论数据,驱动业务决策。建议结合官方文档和社区资源持续优化代码。