电子说
一、核心前提说明
首先要明确:淘宝官方并未开放公开的评论查询 API,市面上能接入的大多是第三方服务商(如聚塔数据、数多多等)提供的 API,这类 API 通常需要:
注册服务商账号,获取API Key/Token
按服务商要求的请求格式(HTTP/HTTPS)调用
按调用次数 / 流量付费
以下示例基于第三方淘宝评论 API 的通用规范编写,你只需替换成自己的服务商参数即可。
二、完整的 API 调用与数据处理示例(Python)
1. 核心代码(可直接运行)
python
运行
import requests
import json
import time
# -------------------------- 配置参数(替换成你的实际信息) --------------------------
API_URL = "https://第三方服务商域名/api/taobao/comment" # 服务商API地址
API_KEY = "your_api_key" # 你的API密钥
TAOBAO_ITEM_ID = "123456789" # 要查询的淘宝商品ID
PAGE_NUM = 1 # 页码
PAGE_SIZE = 20 # 每页评论数
def get_taobao_comments(item_id, page_num=1, page_size=20):
"""
调用淘宝评论API,获取商品评论数据
:param item_id: 淘宝商品ID
:param page_num: 页码
:param page_size: 每页条数
:return: 解析后的评论列表(字典格式)
"""
# 1. 构造请求参数
params = {
"key": API_KEY,
"item_id": item_id,
"page": page_num,
"page_size": page_size,
"format": "json" # 指定返回格式为JSON
}
try:
# 2. 发送请求(添加超时和重试机制,避免网络问题)
response = requests.get(
API_URL,
params=params,
timeout=10, # 超时时间10秒
headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0"}
)
# 3. 校验请求是否成功
response.raise_for_status() # 非200状态码抛出异常
# 4. 解析返回数据
result = response.json()
# 5. 校验API返回是否正常(不同服务商的字段可能不同)
if result.get("code") != 0:
raise Exception(f"API调用失败:{result.get('msg', '未知错误')}")
# 6. 提取核心评论数据
comments = result.get("data", {}).get("comments", [])
return comments
except requests.exceptions.Timeout:
print("错误:请求超时,请检查网络或稍后重试")
return []
except requests.exceptions.ConnectionError:
print("错误:连接失败,请检查API地址是否正确")
return []
except Exception as e:
print(f"错误:{str(e)}")
return []
def process_comments(comments):
"""
处理评论数据(提取关键信息,如用户昵称、评论内容、评分、时间等)
:param comments: 原始评论列表
"""
if not comments:
print("暂无评论数据")
return
processed_data = []
for comment in comments:
# 提取核心字段(字段名根据服务商返回的实际结构调整)
item = {
"user_nick": comment.get("user_nick", "匿名用户"),
"content": comment.get("content", "").strip(), # 评论内容
"score": comment.get("score", 0), # 评分(1-5分)
"create_time": comment.get("create_time", ""), # 评论时间
"reply": comment.get("reply", ""), # 商家回复
"pic_urls": comment.get("pic_urls", []) # 评论图片
}
processed_data.append(item)
# 示例:打印前5条评论
print("解析后的评论数据(前5条):")
for i, data in enumerate(processed_data[:5]):
print(f"n第{i+1}条:")
print(f"用户:{data['user_nick']}")
print(f"评分:{data['score']}分")
print(f"评论:{data['content']}")
print(f"时间:{data['create_time']}")
if __name__ == "__main__":
# 调用API获取评论
comments = get_taobao_comments(TAOBAO_ITEM_ID, PAGE_NUM, PAGE_SIZE)
# 处理并展示评论数据
process_comments(comments)
2. 关键代码解释
请求参数构造:params字典包含 API 密钥、商品 ID、分页信息,是第三方 API 调用的核心,需严格匹配服务商要求;
异常处理:覆盖了超时、连接失败、API 返回错误等常见场景,避免程序直接崩溃;
数据解析:先校验 API 返回的状态码,再提取评论核心字段,保证数据有效性;
数据处理:process_comments函数过滤冗余信息,只保留业务所需的关键数据(如用户昵称、评论内容、评分)。
3. 使用前置条件
安装依赖:执行pip install requests安装请求库;
替换配置:将API_URL、API_KEY、TAOBAO_ITEM_ID替换为你的实际信息;
适配字段:根据第三方服务商返回的 JSON 结构,调整result.get("data", {}).get("comments", [])等字段路径。
三、常见扩展需求处理
1. 分页获取所有评论
如果需要获取商品的全部评论,可循环调用 API(注意服务商的频率限制):
python
运行
def get_all_comments(item_id, page_size=20):
all_comments = []
page_num = 1
while True:
comments = get_taobao_comments(item_id, page_num, page_size)
if not comments:
break
all_comments.extend(comments)
page_num += 1
time.sleep(1) # 暂停1秒,避免触发频率限制
return all_comments
# 调用示例
all_comments = get_all_comments(TAOBAO_ITEM_ID)
print(f"共获取到{len(all_comments)}条评论")
2. 数据持久化(保存到 CSV/Excel)
将解析后的评论保存到文件,方便后续分析:
python
运行
import csv
def save_comments_to_csv(comments, file_path="taobao_comments.csv"):
if not comments:
return
# 定义CSV表头
headers = ["user_nick", "content", "score", "create_time", "reply"]
with open(file_path, "w", encoding="utf-8-sig", newline="") as f:
writer = csv.DictWriter(f, fieldnames=headers)
writer.writeheader()
writer.writerows(comments)
print(f"评论数据已保存到:{file_path}")
# 调用示例
processed_comments = [
{
"user_nick": c.get("user_nick"),
"content": c.get("content"),
"score": c.get("score"),
"create_time": c.get("create_time"),
"reply": c.get("reply")
} for c in comments
]
save_comments_to_csv(processed_comments)
总结
核心步骤:接入第三方淘宝评论 API 后,需先构造符合服务商要求的请求参数,添加异常处理保证稳定性,再解析返回数据提取核心字段;
关键注意事项:替换专属的 API 密钥和地址,适配服务商的返回字段结构,调用时添加频率限制(如time.sleep)避免被封禁;
扩展方向:可通过分页循环获取全量评论,或将数据保存到文件 / 数据库,便于后续的评论分析、情感判断等场景。
在此祝大家马年大吉!!!!!!!!!!
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !