news 2026/4/15 23:30:08

Python 对接淘宝评论 API 接口全流程:权限申请、参数配置与首次采集实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python 对接淘宝评论 API 接口全流程:权限申请、参数配置与首次采集实战

淘宝评论 API 是获取商品评论数据的官方合规渠道,相比爬虫更稳定、数据更完整,但需完成开放平台权限申请、参数配置等前置步骤。本文从新手视角出发,全程拆解 Python 对接淘宝评论 API 的完整流程,包括权限申请、参数解读、代码实现与首次采集验证,帮助开发者 30 分钟内完成首条评论采集。

一、前置准备:淘宝开放平台权限申请

淘宝评论 API ,需完成账号注册、应用创建、权限申请三大步骤。

1. 账号注册与实名认证

2. 创建应用并申请评论 API 权限

  1. 进入「应用管理 - 创建应用」,选择应用类型为「网页应用」(或「小程序应用」,根据使用场景),填写应用名称、用途等信息,提交审核;
  2. 应用审核通过后,进入「应用详情 - 权限管理」,搜索「淘宝商品评论查询」(接口名称:taobao.item.review.get),提交权限申请;
  3. 权限审核:评论 API 属于「开放接口」,一般 1-2 个工作日审核通过,审核通过后可在「已授权权限」中查看接口调用限额(普通应用默认 QPS=1,即每秒 1 次调用)。

3. 关键信息整理

权限申请完成后,整理以下核心信息(后续代码必备):

信息名称获取位置作用
App Key应用详情 - 应用信息接口调用身份标识
App Secret应用详情 - 应用信息(需解密)生成签名的核心密钥
接口地址接口文档 - 请求地址固定为https://eco.taobao.com/router/rest
接口方法名接口文档固定为taobao.item.review.get

二、淘宝评论 API 核心参数解读

淘宝评论 API 采用 REST 风格,请求方式为GET/POST,核心参数分为「公共参数」和「业务参数」,参数错误会直接导致调用失败。

1. 公共参数(所有 API 通用)

参数名必传取值示例说明
methodtaobao.item.review.get接口方法名,固定值
app_key26888888(示例)应用 App Key
timestamp2025-05-20 10:00:00请求时间戳,格式为 yyyy-MM-dd HH:mm:ss,与服务器时间差≤10 分钟
formatjson返回数据格式,推荐 json
v2.0接口版本号,固定为 2.0
sign98D76F5A...(示例)签名值,由 App Secret + 所有参数拼接后 MD5 加密生成(小写)
sign_methodmd5签名方式,固定为 md5

2. 业务参数(评论 API 专属)

参数名必传取值示例说明
num_iid1234567890(示例)商品 ID(淘宝商品详情页 URL 中id=后的数字)
page_no1页码,默认 1,单次最多返回 100 页
page_size20每页条数,默认 20,最大 20
sort0排序方式:0 - 默认排序,1 - 按时间从新到旧
has_contenttrue是否只返回有文字内容的评论:true - 是,false - 否(默认)

3. 签名生成规则(核心)

淘宝 API 签名是防篡改的关键,生成逻辑:

  1. 将所有请求参数(公共 + 业务)按参数名ASCII 升序排序;
  2. 拼接成key1value1key2value2...的字符串;
  3. 在字符串首尾拼接 App Secret(如secretkey1value1key2value2secret);
  4. 对拼接后的字符串做 MD5 加密,转换为小写,即为 sign 值。

示例:参数:app_key=26888888method=taobao.item.review.getnum_iid=1234567890timestamp=2025-05-20 10:00:00v=2.0排序后拼接:app_key26888888methodtaobao.item.review.getnum_iid1234567890timestamp2025-05-20 10:00:00v2.0拼接 App Secret(假设为abc123):abc123app_key26888888methodtaobao.item.review.getnum_iid1234567890timestamp2025-05-20 10:00:00v2.0abc123MD5 加密后得到 sign:98d76f5a8b7c6d5e4f3a2b1c0d9e8f7g(示例)。

三、Python 代码实现:首次评论采集

以下代码基于 Python 3.8+ 编写,无需复杂依赖,仅需requests库处理 HTTP 请求,time库生成时间戳,hashlib生成签名。

1. 环境准备

安装依赖库:

bash

运行

pip install requests

2. 完整代码实现

python

运行

import requests import time import hashlib from urllib.parse import urlencode # -------------------------- 配置信息(替换为自己的) -------------------------- APP_KEY = "你的App Key" APP_SECRET = "你的App Secret" API_URL = "https://eco.taobao.com/router/rest" # 目标商品ID(替换为要采集的商品ID) NUM_IID = "1234567890" def generate_sign(params, app_secret): """ 生成淘宝API签名 :param params: 所有请求参数(字典) :param app_secret: App Secret :return: 签名值(小写) """ # 1. 按参数名ASCII升序排序 sorted_params = sorted(params.items(), key=lambda x: x[0]) # 2. 拼接参数为字符串 sign_str = "" for key, value in sorted_params: sign_str += f"{key}{value}" # 3. 首尾拼接App Secret sign_str = app_secret + sign_str + app_secret # 4. MD5加密并转小写 md5 = hashlib.md5() md5.update(sign_str.encode("utf-8")) sign = md5.hexdigest().lower() return sign def get_taobao_reviews(num_iid, page_no=1, page_size=20): """ 调用淘宝评论API采集评论 :param num_iid: 商品ID :param page_no: 页码 :param page_size: 每页条数 :return: 评论数据(字典) """ # 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", # 2. 构造业务参数 "num_iid": num_iid, "page_no": page_no, "page_size": page_size, "sort": 1, # 按时间从新到旧排序 "has_content": True # 只返回有文字的评论 } # 3. 生成签名 sign = generate_sign(params, APP_SECRET) params["sign"] = sign # 将签名加入参数 # 4. 发送请求 try: response = requests.get(API_URL, params=params, timeout=10) # 5. 解析响应 if response.status_code == 200: result = response.json() # 检查是否调用成功 if "error_response" in result: print(f"API调用失败:{result['error_response']['msg']}(错误码:{result['error_response']['code']})") return None else: return result["item_review_get_response"]["reviews"] # 返回评论列表 else: print(f"请求失败,状态码:{response.status_code}") return None except Exception as e: print(f"请求异常:{str(e)}") return None if __name__ == "__main__": # 首次采集:获取第1页评论(20条) reviews = get_taobao_reviews(NUM_IID, page_no=1, page_size=20) if reviews: print(f"成功采集到 {len(reviews)} 条评论:") # 打印前3条评论示例 for i, review in enumerate(reviews[:3]): print(f"\n【第{i+1}条评论】") print(f"用户昵称:{review['nick']}") print(f"评论内容:{review['content']}") print(f"评论时间:{review['created']}") print(f"商品评分:{review['rate']}星") else: print("评论采集失败,请检查配置或权限!")

3. 代码关键说明

  1. 签名生成函数generate_sign严格遵循淘宝 API 签名规则,确保参数排序和加密逻辑正确;
  2. 参数容错:加入异常捕获,处理网络超时、状态码异常、API 错误码等情况;
  3. 数据解析:直接提取响应中的评论列表,过滤无关字段,便于后续使用。

四、首次采集验证与常见问题排查

1. 成功采集的标志

运行代码后,控制台输出类似以下内容,说明采集成功:

plaintext

成功采集到 20 条评论: 【第1条评论】 用户昵称:tbNick123456 评论内容:商品质量很好,物流也快,推荐购买! 评论时间:2025-05-19 15:30:00 商品评分:5星 【第2条评论】 用户昵称:tbNick654321 评论内容:尺寸很合适,使用体验不错~ 评论时间:2025-05-19 14:20:00 商品评分:4星

2. 常见问题排查

问题现象可能原因解决方案
签名错误(错误码 40)1. App Secret 填写错误;2. 参数排序错误;3. 时间戳格式错误1. 核对 App Secret;2. 检查签名函数的排序逻辑;3. 确保时间戳格式为yyyy-MM-dd HH:mm:ss
权限不足(错误码 11)评论 API 权限未审核通过,或应用未上线1. 检查「应用管理 - 权限管理」确认权限状态;2. 完成应用上线流程(需填写应用描述、上传图标)
商品 ID 无效(错误码 22)NUM_IID 填写错误,或商品已下架1. 核对商品 ID(从商品详情页 URL 复制);2. 更换有效商品 ID 测试
QPS 超限(错误码 15)调用频率超过限额(默认 1 QPS)增加请求间隔(如time.sleep(1)),避免短时间多次调用
响应为空has_content=True 但该商品无文字评论注释掉has_content参数,或更换有评论的商品 ID

五、后续优化方向(新手进阶)

  1. 批量采集:循环调用get_taobao_reviews函数,修改page_no实现多页评论采集(注意单商品最多采集 100 页);
  2. 数据存储:将采集的评论存入 MySQL/CSV/Excel,示例代码:

    python

    运行

    import csv # 保存评论到CSV with open("taobao_reviews.csv", "w", encoding="utf-8-sig", newline="") as f: writer = csv.DictWriter(f, fieldnames=["nick", "content", "created", "rate"]) writer.writeheader() writer.writerows(reviews)
  3. 增量采集:记录上次采集的最后评论时间,下次仅采集该时间之后的新增评论,减少重复调用;
  4. 多商品采集:维护商品 ID 列表,循环调用接口实现多商品评论批量采集。

六、合规注意事项

  1. 淘宝评论 API 采集的数据仅可用于自身业务分析(如竞品分析、用户反馈调研),不得用于商业售卖、恶意抹黑等违规场景;
  2. 严格遵守 API 调用限额,避免高频调用导致账号封禁;
  3. 采集的用户昵称、评论内容等数据需做好隐私保护,不得泄露用户个人信息。

通过以上流程,新手可快速完成淘宝评论 API 的对接与首次采集,后续可根据业务需求扩展数据处理、分析等功能,实现从「数据采集」到「价值挖掘」的闭环。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 14:02:24

20、管理邮件服务器:Sendmail 的全面指南

管理邮件服务器:Sendmail 的全面指南 电子邮件是互联网主机上最受欢迎的服务之一。电子邮件软件主要由两部分组成:邮件传输代理(MTA),负责实际发送和接收邮件消息;邮件用户代理(MUA),用于读取消息和编写新消息。目前实现该服务最流行的两种方式是 Postfix 和 Sendmai…

作者头像 李华
网站建设 2026/4/15 14:18:42

Prometheus连接nVisual实现资产拓扑业务关联分析

你是否想基于机柜视图监控你的设备? 你是否想基于逻辑或物理拓扑监控你的IT设备? 你是否想基于业务流程图监控你的业务? 你是否想同时查看一个设备的位置、拓扑关系、实时状态数据? …… 如果以上有一点是您的需求&#x…

作者头像 李华
网站建设 2026/4/15 20:03:11

WINBOND华邦 W25Q64JVSSIQ/烧录 SOP-8 NOR FLASH

特性 新一代SpiFlash存储器系列-W25Q64JV:64兆位/8兆字节标准SPI:CLK、/CS、Di、DO双SPI:CLK、/CS、I/00、I/01四通道SPI:CLK、/CS、100、101、102、103软件与硬件复位(1) 最高性能串行闪存-133MHz单SPI、双/四SPI时钟等效于266/532MHz的双/四通道SPI每扇区最小10万次编程擦除循…

作者头像 李华
网站建设 2026/4/16 13:35:16

PUYA普冉 PY25Q128HA/烧录 SOP8 电池充电管理IC

描述 30V耐压,同步降压型充电器99%系统工作占空比最大3A充电电流,充电电流外部电阻可调NTC功能 降压充电效率90%1%电池恒压精度充电终止电流独立可调支持LED充电状态指示内置功率MOS 550KHz开关频率,可支持6.8uH电感输出过压,短路…

作者头像 李华
网站建设 2026/4/16 13:34:43

数控机床密码解锁全攻略:从基础排查到专业应对

数控机床作为现代制造业的核心设备,其密码保护机制在保障生产安全的同时,也可能因操作失误、系统故障或密码遗忘等问题导致设备锁定。本文将从基础排查、软件操作、硬件维护到专业求助四个层面,系统梳理数控机床密码解锁的合法路径&#xff0…

作者头像 李华