你想要通过 Python 完成淘宝评论 API 的调用和首次评论采集,我会从前置准备、环境搭建、接口认知、代码实现、结果解析这几个步骤,带你完成从入门到成功采集的全流程,全程兼顾新手可操作性,避开各类坑点。
一、重要前置说明(必看,避坑核心)
首先要明确:淘宝没有公开的「通用评论采集 API」(个人 / 普通开发者无法直接调用淘宝官方的商品评论接口),原因如下:
- 淘宝开放平台(TOP)的接口多面向企业 / 商家,且评论相关接口(如
taobao.item.review.get)仅开放给天猫商城商家、淘宝官方合作服务商,个人开发者无法申请到权限; - 淘宝对非官方接口调用有严格的反爬机制,直接爬取网页评论容易被封禁 IP、限制账号。
因此,我们采用「第三方开放接口(适合入门学习)」来完成首次采集(无需企业资质,快速上手),后续若有商业需求,需对接淘宝官方合规渠道。
本次教程核心:使用第三方封装的淘宝评论接口,完成 Python 环境搭建→接口调用→评论数据解析→本地保存的全流程。
二、前置准备工作
1. 环境要求
- Python 3.7+(推荐 3.9/3.10,兼容性更好)
- 必备 Python 库:
requests(发送网络请求)、json(解析返回数据)、pandas(可选,格式化保存数据)
2. 获取第三方接口密钥(以「数据」为例,免费试用)
我们选择淘宝商品评论接口(免费试用,无需企业资质,适合入门),步骤如下:
- 关注博主,注册并完成实名认证(个人实名认证即可,免费);
- 搜索「淘宝商品评论查询」,进入接口详情页,点击「免费领取」,获取AppKey(接口调用密钥,后续代码需用到);
- 查看接口文档,确认核心信息:
- 请求地址:xxx
- 请求方式:
GET - 必填参数:
key(你的 AppKey)、num_iid(淘宝商品 ID)
3. 获取淘宝商品 ID(num_iid)
淘宝商品详情页 URL 示例:https://item.taobao.com/item.htm?id=690123456789,其中690123456789就是num_iid(商品唯一标识)。
三、步骤 1:搭建 Python 环境,安装必备库
打开终端 / 命令提示符,执行以下安装命令:
bash
运行
# 安装核心库requests(发送请求)
pip install requests
# 可选:安装pandas(将评论数据保存为Excel,方便查看)
pip install pandas
四、步骤 2:编写 Python 代码,完成首次评论采集
完整代码(可直接复制使用,只需修改 2 个参数)
python
运行
import requests
import json
import pandas as pd
from datetime import datetime
def get_taobao_comments():
"""
调用第三方接口,采集淘宝商品评论
"""
# ---------------------- 需修改的参数(仅这2个) ----------------------
APP_KEY = "你的聚合数据AppKey" # 替换为你自己领取的AppKey
NUM_IID = "690123456789" # 替换为你要采集的淘宝商品ID
# --------------------------------------------------------------------
# 1. 接口配置信息
url = "https://v.juhe.cn/taobao/unified/get_comments"
params = {
"key": APP_KEY,
"num_iid": NUM_IID,
"page": 1, # 页码,默认第1页
"page_size": 20, # 每页评论数,最大20条(免费版限制)
"format": "json" # 返回格式,固定为json
}
try:
# 2. 发送GET请求(添加超时设置,避免无限等待)
response = requests.get(url, params=params, timeout=30)
# 3. 检查请求是否成功(响应状态码200表示成功)
response.raise_for_status() # 若状态码不是200,抛出异常
# 4. 解析返回的JSON数据
result = response.json()
print("接口返回原始数据:\n", json.dumps(result, ensure_ascii=False, indent=2))
# 5. 判断接口调用是否成功(根据聚合数据返回码判断,200表示成功)
if result.get("error_code") == 0:
# 提取核心评论数据
comment_data = result.get("result", {}).get("comments", [])
if not comment_data:
print("该商品暂无评论或未采集到评论数据")
return
# 6. 格式化评论数据(提取需要的字段,剔除冗余信息)
formatted_comments = []
for comment in comment_data:
formatted_comment = {
"评论ID": comment.get("comment_id", ""),
"用户昵称": comment.get("nickname", ""),
"评论内容": comment.get("content", ""),
"评论时间": comment.get("create_time", ""),
"商品规格": comment.get("sku", ""),
"评分": comment.get("star", ""),
"是否有图片": "是" if comment.get("images") else "否"
}
formatted_comments.append(formatted_comment)
# 7. 输出格式化后的评论数据
print("\n格式化后的评论数据:")
for idx, comm in enumerate(formatted_comments, 1):
print(f"第{idx}条:", comm)
# 8. 可选:将评论数据保存为Excel文件(方便后续查看和分析)
save_path = f"淘宝商品{NUM_IID}_评论_{datetime.now().strftime('%Y%m%d%H%M%S')}.xlsx"
pd.DataFrame(formatted_comments).to_excel(save_path, index=False, encoding="utf-8")
print(f"\n评论数据已成功保存至:{save_path}")
else:
# 接口调用失败,打印错误信息
print(f"接口调用失败:{result.get('reason', '未知错误')},错误码:{result.get('error_code')}")
except requests.exceptions.Timeout:
print("错误:请求超时,请检查网络连接或稍后重试")
except requests.exceptions.RequestException as e:
print(f"错误:请求失败,详情:{e}")
except Exception as e:
print(f"错误:数据解析或处理失败,详情:{e}")
if __name__ == "__main__":
get_taobao_comments()
代码关键部分解释
- 参数配置 :仅需修改
APP_KEY和NUM_IID,其余参数保持默认即可(免费版限制每页最多 20 条评论); - 请求发送 :使用
requests.get()发送 GET 请求,添加timeout=30避免请求无限等待,提高程序健壮性; - 状态码检查 :
response.raise_for_status()会在响应状态码非 200 时抛出异常,快速捕获请求失败问题; - 数据解析 :先判断聚合数据的
error_code(200 为成功),再提取核心评论列表comments,避免因数据为空导致程序报错; - 数据格式化:提取常用字段(评论 ID、用户昵称、评论内容等),剔除冗余信息,方便查看和保存;
- 本地保存 :使用
pandas将格式化数据保存为 Excel 文件,文件名包含商品 ID 和当前时间,避免文件重名。
五、步骤 3:运行代码,查看采集结果
- 将代码中的
APP_KEY替换为你在聚合数据领取的真实密钥,NUM_IID替换为目标淘宝商品 ID; - 运行 Python 脚本(终端执行
python 文件名.py,或直接在 PyCharm/VS Code 中点击运行); - 查看运行结果:
- 终端会输出接口原始数据和格式化后的评论数据;
- 脚本所在目录会生成一个 Excel 文件,打开即可查看结构化的评论数据。
六、常见问题与解决方案
-
错误码 10001/10002(AppKey 错误 / 无效)
- 原因:AppKey 填写错误、未领取接口、账号未实名认证;
- 解决方案:核对 AppKey 是否正确,确认已领取「淘宝商品评论查询」接口,完成个人实名认证。
-
错误码 20001/20002(参数错误 / 商品 ID 无效)
- 原因:
num_iid填写错误、商品已下架 / 不存在; - 解决方案:核对商品 ID 是否正确,手动在淘宝官网打开商品详情页验证商品是否存在。
- 原因:
-
请求超时 / 连接失败
- 原因:网络不稳定、防火墙拦截、接口服务器维护;
- 解决方案:检查网络连接,关闭防火墙重试,或稍后再试。
-
采集到的评论数量过少
- 原因:免费版接口限制每页 20 条、最多采集 10 页;
- 解决方案:如需更多数据,可升级聚合数据付费版,或循环修改
page参数实现多页采集(注意接口限流)。
七、注意事项(合规与风险)
- 仅用于学习研究:第三方接口采集的数据不可用于商业用途,否则可能违反淘宝用户协议和相关法律法规;
- 避免高频调用:即使是免费版接口,也有调用频率限制(一般每分钟 10 次以内),高频调用会被封禁接口权限;
- 官方合规渠道:若有商业需求,需入驻开发平台,申请企业资质和官方接口权限,这是唯一合规的方式。
总结
- 淘宝无公开通用评论 API,新手入门可采用第三方接口(如聚合数据)快速完成采集,核心步骤是「获取 AppKey→配置商品 ID→发送请求→解析保存数据」;
- 本次教程的 Python 代码可直接落地,仅需修改 2 个核心参数,即可完成评论采集并保存为 Excel 文件;
- 采集数据需遵守合规要求,免费版接口有诸多限制,商业场景需对接淘宝官方开放平台。