news 2026/5/1 1:52:49

淘宝商品评论API(taobao.item_review)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
淘宝商品评论API(taobao.item_review)

淘宝商品评论核心接口taobao.item_review.get(常简称为 taobao.item_review)的详细使用规则、调用细节和实操要点,这是阿里开放平台获取商品评论的核心接口。

一、接口核心信息(taobao.item_review.get)

1. 基础属性
维度具体内容
接口类型淘宝开放平台「商品评价管理」类目下的 REST API
适用场景获取淘宝 / 天猫商品的用户评价(含评分、内容、晒图、追评等)
权限要求c0b.cc/R4rbK2 (前往体验接口测试,Taobaoapi2014添加V获取)。
调用限制按应用等级限流(普通应用单日调用量约 1000次/秒)
数据范围仅返回公开的用户评论,脱敏展示用户昵称,不返回用户隐私信息
2. 核心参数(补充高频参数)

除了基础必选参数外,该接口还有以下实用可选参数:

参数名是否必选取值 / 说明
num_iid商品 ID(淘宝商品详情页 URL 中id=后的数字,如1234567890
page_no页码,默认 1,最大不超过总页数(总页数 = 总评论数 / 20)
page_size每页条数,1-20,默认 20
rate评分筛选:1(差评)、2(中评)、3(中评)、4(好评)、5(好评)
has_pic是否只返回带图评论:true/false(默认 false)
has_add是否只返回追评:true/false(默认 false)
3. 典型返回数据结构(JSON)

json

{ "item_review_get_response": { "request_id": "123456", // 请求ID(用于排查问题) "total_results": 500, // 该商品总评论数 "reviews": { "review": [ { "id": "10086", // 评论ID "nick": "tbNick123", // 用户昵称(脱敏) "rate": 5, // 评分(1-5) "content": "商品质量很好,物流也快!", // 评论正文 "created": "2026-01-08 15:30:00", // 评论时间 "pic": "https://img.alicdn.com/xxx.jpg", // 晒图URL(多个用逗号分隔) "add_content": "用了一周,还是很好用", // 追评内容 "add_time": "2026-01-15 10:20:00", // 追评时间 "auction_sku": "颜色:白色;尺寸:XL" // 评论对应的商品规格 } ] } } }

二、完整可运行的 Python 调用示例(优化版)

该示例新增评分筛选、带图评论筛选功能,更贴合实际使用场景:

1. 环境准备

bash

pip install requests python-dotenv
2. 代码实现

python

运行

import requests import time import hashlib import json from dotenv import load_dotenv import os # 加载敏感配置(.env文件) load_dotenv() APP_KEY = os.getenv("TAOBAO_APP_KEY") APP_SECRET = os.getenv("TAOBAO_APP_SECRET") def generate_sign(params: dict, app_secret: str) -> str: """生成淘宝接口签名(严格遵循阿里规则)""" # 1. 按参数名ASCII升序排序 sorted_params = sorted(params.items(), key=lambda x: x[0]) # 2. 拼接签名字符串 sign_str = app_secret for key, value in sorted_params: if value is not None and value != "": sign_str += f"{key}{value}" sign_str += app_secret # 3. MD5加密并转大写 return hashlib.md5(sign_str.encode("utf-8")).hexdigest().upper() def call_taobao_item_review( num_iid: str, page_no: int = 1, page_size: int = 20, rate: int = None, # 筛选评分:1-5,None则不筛选 has_pic: bool = False # 是否只返回带图评论 ) -> dict | None: """ 调用taobao.item_review.get接口 :param num_iid: 商品ID :param page_no: 页码 :param page_size: 每页条数(1-20) :param rate: 评分筛选(1-5) :param has_pic: 是否只返回带图评论 :return: 评论数据字典,失败返回None """ # 1. 构造基础参数 params = { "method": "taobao.item.review.get", "app_key": APP_KEY, "timestamp": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), "format": "json", "v": "2.0", "sign_method": "md5", "num_iid": num_iid, "page_no": page_no, "page_size": page_size } # 2. 添加可选筛选参数 if rate is not None and 1 <= rate <= 5: params["rate"] = rate if has_pic: params["has_pic"] = "true" # 接口要求字符串格式的true/false # 3. 生成签名 params["sign"] = generate_sign(params, APP_SECRET) # 4. 发送请求 url = "https://eco.taobao.com/router/rest" try: response = requests.post(url, params=params, timeout=10) response.raise_for_status() result = response.json() # 5. 处理错误响应 if "error_response" in result: err = result["error_response"] print(f"接口错误:[{err['code']}] {err['msg']}") return None return result["item_review_get_response"] except Exception as e: print(f"调用失败:{str(e)}") return None # -------------------------- 测试调用 -------------------------- if __name__ == "__main__": # 示例:获取商品1234567890的5星带图评论,第1页,每页10条 review_data = call_taobao_item_review( num_iid="1234567890", page_no=1, page_size=10, rate=5, has_pic=True ) if review_data: total = review_data.get("total_results", 0) print(f"找到{total}条符合条件的评论:") for idx, rev in enumerate(review_data["reviews"]["review"], 1): print(f"\n=== 评论{idx} ===") print(f"用户:{rev['nick']}") print(f"评分:{rev['rate']}星") print(f"内容:{rev['content']}") print(f"规格:{rev.get('auction_sku', '未知')}") print(f"晒图:{rev.get('pic', '无')}")
3. .env 文件配置示例

在项目根目录创建.env文件:

env

TAOBAO_APP_KEY=你的实际AppKey TAOBAO_APP_SECRET=你的实际AppSecret

三、常见问题与解决方案

问题现象原因分析解决方案
403 错误(签名错误)AppSecret 错误 / 参数排序错误 / 时间戳格式错误1. 核对 AppSecret;2. 确认参数 ASCII 升序;3. 时间戳格式为YYYY-MM-DD HH:MM:SS
401 错误(权限不足)未申请接口权限 / 应用未审核通过登录开放平台,在「应用管理 - 权限管理」中申请该接口并等待审核
返回评论为空商品无评论 / 筛选条件过严 / 页码超限1. 检查商品是否有评论;2. 放宽筛选条件;3. 核对总页数
调用频率超限单日调用量超过应用限额1. 升级应用等级;2. 增加调用间隔(如每次调用休眠 1 秒)

四、进阶使用建议

  1. 分页获取所有评论:通过total_results计算总页数,循环调用call_taobao_item_review并递增page_no,直到获取所有评论;
  2. 数据存储:将评论数据存入 CSV/MySQL/MongoDB,方便后续分析(如情感分析、关键词提取);
  3. 异常重试:添加重试机制(如使用tenacity库),处理网络波动导致的临时失败;
  4. 日志记录:记录每次调用的请求 ID、参数、响应结果,方便问题排查。

总结

  1. taobao.item_review.get是获取淘宝商品评论的官方合规接口,核心是正确生成签名申请接口权限
  2. 该接口支持评分、带图、追评等筛选条件,可精准获取目标评论数据;
  3. 调用时需注意限流规则和数据合规性,敏感配置(AppKey/AppSecret)需避免硬编码。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/27 7:59:33

MediaCrawler:终极社交媒体数据采集解决方案 - 从零到精通的完整指南

MediaCrawler&#xff1a;终极社交媒体数据采集解决方案 - 从零到精通的完整指南 【免费下载链接】MediaCrawler 小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫、快手视频 | 评论爬虫、B 站视频 &#xff5c; 评论爬虫 项目地址: https://gitcode.com/GitHub_Trending/me/Medi…

作者头像 李华
网站建设 2026/4/30 22:51:24

零基础图解QT5.14.2安装:从下载到第一个程序

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个交互式QT5.14.2安装学习应用&#xff0c;功能&#xff1a;1.分步骤动画演示安装过程 2.实时错误检测与提示 3.内置虚拟环境练习模式 4.包含Hello World示例项目 5.支持语音…

作者头像 李华
网站建设 2026/4/23 14:46:44

零基础入门PAPERLESS-NGX:从安装到基本使用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个PAPERLESS-NGX新手教程应用&#xff0c;包含&#xff1a;1. 分步安装指南&#xff08;支持不同操作系统&#xff09;&#xff1b;2. 基础功能介绍视频&#xff1b;3. 交互…

作者头像 李华
网站建设 2026/4/29 6:13:15

告别手动配置:3分钟极速搭建Git Bash开发环境

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个高效的Git Bash自动化安装配置脚本&#xff0c;要求&#xff1a;1.支持断点续传下载 2.并行执行下载和系统检测 3.自动跳过已安装组件 4.提供安装进度可视化 5.生成安装报…

作者头像 李华
网站建设 2026/4/17 15:54:00

一键部署:用ModelScope镜像玩转MGeo地址匹配

一键部署&#xff1a;用ModelScope镜像玩转MGeo地址匹配 为什么需要MGeo地址匹配&#xff1f; 作为独立开发者&#xff0c;最近我在为社区物业管理系统添加智能地址校验功能时遇到了难题。用户输入的地址五花八门&#xff1a;"朝阳区建国路88号"、"北京朝阳建国…

作者头像 李华
网站建设 2026/4/23 13:11:22

地址模糊搜索新思路:MGeo语义匹配+传统字面匹配的融合策略

地址模糊搜索新思路&#xff1a;MGeo语义匹配传统字面匹配的融合策略 你是否遇到过这样的场景&#xff1a;在本地生活APP搜索"国贸三期"&#xff0c;却找不到对应的"中国国际贸易中心3号楼"&#xff1f;传统基于Elasticsearch的字面匹配方案在这种地址模糊…

作者头像 李华