淘宝评论API接入后

电子说

1.4w人已加入

描述

一、核心前提说明

首先要明确:淘宝官方并未开放公开的评论查询 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)避免被封禁;

扩展方向:可通过分页循环获取全量评论,或将数据保存到文件 / 数据库,便于后续的评论分析、情感判断等场景。
在此祝大家马年大吉!!!!!!!!!!


审核编辑 黄宇
 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • 热点推荐
  • API

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分