Python采集淘宝商品评论API接口概述,json格式数据参考

一、淘宝商品评论API接口概述

淘宝开放平台提供了taobao.item.reviews.get接口,用于获取指定商品的评论数据。该接口支持分页查询、多条件筛选(如时间范围、评分等级)和自定义返回字段,适用于电商数据分析、竞品研究和用户行为洞察等场景。

核心功能

  1. 分页获取评论:支持通过page_nopage_size参数控制返回数据的分页。
  2. 多维度筛选:可按时间范围(start_dateend_date)、评分等级(rate_type)等条件过滤评论。
  3. 自定义字段:通过fields参数指定返回字段(如评论内容、用户昵称、评分等),减少数据冗余。

接口文档要点

  • 请求方式:HTTP POST
  • 响应格式:JSON
  • 关键参数
    • item_id:商品ID(必填)
    • page_no:页码(默认1)
    • page_size:每页条数(默认20,最大40)
    • rate_type:评论类型(good好评、neutral中评、bad差评)
    • fields:返回字段列表(如content,created,score,user_nick
二、JSON格式数据参考

以下是接口返回的JSON数据示例及字段说明:

{
"item_reviews_get_response": {
"total_results": 1234, // 评论总数
"reviews": {
"review": [
{
"content": "商品质量很好,物流也很快!", // 评论内容
"created": "2025-06-03 10:30:00", // 评论时间
"score": 5, // 评分(1-5)
"user_nick": "用户123", // 用户昵称
"pictures": [ // 评论图片(可选)
"http://example.com/image1.jpg",
"http://example.com/image2.jpg"
],
"reply": { // 商家回复(可选)
"content": "感谢您的支持!",
"reply_date": "2025-06-04 14:00:00"
}
},
{
"content": "包装一般,但商品本身不错。",
"created": "2025-06-02 16:45:00",
"score": 4,
"user_nick": "用户456"
}
]
}
},
"request_id": "1234567890abcdef" // 请求ID(用于调试)
}

关键字段说明

  1. total_results:当前商品的总评论数,用于计算总页数。
  2. reviews.review:评论列表,每条评论包含以下核心字段:
    • content:评论正文。
    • created:评论时间(格式:YYYY-MM-DD HH:MM:SS)。
    • score:评分(1-5分)。
    • user_nick:用户昵称(部分敏感信息可能脱敏)。
    • pictures:评论中上传的图片URL列表(可选)。
    • reply:商家回复内容及时间(可选)。
  3. request_id:请求唯一标识,用于日志记录或问题排查。
三、Python调用示例

以下是使用requests库调用API并解析JSON数据的示例代码:

import requests
import hashlib
import time
def generate_sign(params, app_secret):
"""生成淘宝API签名"""
sorted_params = sorted(params.items(), key=lambda x: x[0])
sign_str = app_secret
for key, value in sorted_params:
if key != 'sign' and value: # 跳过sign字段和空值
sign_str += f"{key}{value}"
sign_str += app_secret
return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
def get_item_reviews(app_key, app_secret, item_id, page_no=1, page_size=20):
"""获取商品评论"""
url = "https://eco.taobao.com/router/rest"
timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# 公共参数
public_params = {
"method": "taobao.item.reviews.get",
"app_key": app_key,
"timestamp": timestamp,
"format": "json",
"v": "2.0",
"sign_method": "md5"
}
# 业务参数
biz_params = {
"item_id": item_id,
"page_no": page_no,
"page_size": page_size,
"fields": "content,created,score,user_nick,pictures,reply" # 自定义返回字段
}
# 合并参数并生成签名
all_params = {**public_params, **biz_params}
all_params["sign"] = generate_sign(all_params, app_secret)
# 发送请求
response = requests.post(url, data=all_params)
result = response.json()
# 解析数据
if "item_reviews_get_response" in result:
reviews = result["item_reviews_get_response"]["reviews"]["review"]
for review in reviews:
print(f"用户: {review['user_nick']}")
print(f"评分: {review['score']}")
print(f"时间: {review['created']}")
print(f"内容: {review['content']}")
if "pictures" in review and review["pictures"]:
print(f"图片: {', '.join(review['pictures'])}")
if "reply" in review:
print(f"回复: {review['reply']['content']} ({review['reply']['reply_date']})")
print("-" * 50)
else:
print("获取评论失败:", result.get("error_response", {}).get("msg", "未知错误"))
# 示例调用(需替换为真实的App Key和App Secret)
app_key = "your_app_key"
app_secret = "your_app_secret"
item_id = "123456789" # 替换为实际商品ID
get_item_reviews(app_key, app_secret, item_id)

你可能感兴趣的:(python,API,python,json,前端)