做电商运营、竞品调研、产品优化、选品复盘,商品用户评论是最核心的一手数据。传统方式需要手动翻页复制评论、整理图文评价、人工提炼用户痛点、好评卖点,一款热门商品动辄上万条评论,人工处理效率极低,还容易遗漏关键信息。

搭配分层 AI Agent 架构,实现全页评论自动抓取、图文数据解析、异常自动重试、评论内容智能分类、用户痛点提炼全流程自动化。整套方案无需复杂爬虫,接口稳定防封禁,部署后即可实现无人值守批量爬取 + 分析评论,适配竞品监控、产品优化、文案提炼、舆情分析等场景,个人开发者与企业 ERP 系统均可快速对接。

一、item_review 接口完整说明
接口名称:taobao.item_review(淘宝 / 天猫商品评论获取)请求地址:https://api-gw.onebound.cn/taobao/item_review

  1. 公共请求参数(全局通用)
    表格

参数名 类型 是否必填 说明
key String 是 接口调用凭证,URL 拼接传参
secret String 是 调用密钥
api_name String 是 固定填写 item_review
cache String 否 yes/no,默认开启缓存,加速请求
result_type String 否 默认 json,jsonu 可直接正常展示中文
lang String 否 语言版本,默认 cn 简体中文

  1. 核心业务请求参数
    表格

参数名 说明 取值规则
num_iid 商品 ID 必填,淘宝商品唯一编号
page 页码 支持 1~100 页,单商品最多抓取 100 页评论
sort 评论排序 0 = 默认排序,1 = 最新评论排序
version 日期格式版本 不传:2025-01-12 11:16:35;传version=1:2025年1月12日

  1. 响应核心字段解析
    接口返回标准化 JSON 结构,重点业务字段如下:

total_results:评论总条数

totalpage:评论总页数

page_size:单页返回评论数量(固定 10 条 / 页)

page:当前请求页码

item[]:评论列表数组,单条评论核心字段:

rate_content:用户主评论内容
rate_date:评论时间
pics:评论晒图地址数组
display_user_nick:匿名用户昵称
auction_sku:对应购买商品规格
add_feedback:追评内容
add_feedback_images:追评图片地址
rate_id:评论唯一 ID

  1. 错误码与异常处理(Agent 内置容错逻辑)
    表格

错误码 含义 自动化处理方案
0000 调用成功 正常解析、存储评论数据
2000 无数据 / 商品不存在 终止当前任务,日志提示商品失效
4003 参数错误 自动校验参数,重新发起请求
4008 调用并发超限 休眠延时,分批重试
4013 调用次数超限 暂停任务,记录断点,延后继续采集
4016 账户余额不足 终止任务,弹窗 / 日志告警
4017 请求超时 重试 2 次,仍失败则跳过当前页码
二、多 AI Agent 整体分工逻辑
延续轻量化多智能体架构,各司其职、流水线执行,无需复杂部署,5 个 Agent 串联完成参数组装→分页采集→数据清洗→内容分析→报表导出全流程:

任务配置 Agent:接收商品 ID、采集页数、排序规则,自动拼接接口请求参数,生成分页任务队列
评论采集 Agent:循环遍历分页队列,调用评论接口,捕获各类异常并自动重试,批量拉取全量评论
数据清洗 Agent:过滤空评论、脱敏冗余内容,统一图文地址格式,规整 SKU、时间字段
评论分析 Agent:提炼好评卖点、负面痛点、高频关键词,区分主评 / 追评,做简易舆情分类
报表导出 Agent:汇总所有数据,自动生成 Excel 表格,包含评论内容、晒图链接、用户规格、分析标签
整体链路:输入商品 ID → 生成分页任务 → 全页自动采集 → 数据清洗规整 → AI 智能分析 → 导出成品报表

三、完整可运行 Python 代码
python

运行

-- coding: utf-8 --

"""
淘宝商品评论自动化采集+AI分析工具
基于 taobao.item_review 接口 + 多Agent架构
功能:分页采集、异常重试、数据清洗、评论分析、自动导出Excel
"""
import requests
import time
import pandas as pd

==================== 配置区域 请自行修改 ====================

API_KEY = "你的key"
API_SECRET = "你的secret"

目标商品ID

GOODS_ID = "600530677643"

采集页码范围 1 - 100

START_PAGE = 1
END_PAGE = 20

排序:0默认 1最新

SORT_TYPE = 0

日期版本 0/1

DATE_VERSION = 1

===========================================================

BASE_URL = "https://api-gw.onebound.cn/taobao/item_review"

Agent1:任务配置 & 参数生成

class TaskAgent:

def create_task_list(self):
    task_list = []
    for page in range(START_PAGE, END_PAGE + 1):
        params = {
            "key": API_KEY,
            "secret": API_SECRET,
            "api_name": "item_review",
            "num_iid": GOODS_ID,
            "page": page,
            "sort": SORT_TYPE,
            "version": DATE_VERSION,
            "result_type": "jsonu",
            "cache": "yes"
        }
        task_list.append(params)
    print(f"已生成 {len(task_list)} 个分页采集任务")
    return task_list

Agent2:评论采集 & 异常重试

class ReviewFetchAgent:

def __init__(self):
    self.review_data = []

def fetch_one_page(self, params, retry=2):
    try:
        resp = requests.get(BASE_URL, params=params, timeout=20)
        res = resp.json()
        code = res.get("error_code")

        if code == "0000":
            items_data = res.get("items", {})
            page_items = items_data.get("item", [])
            self.review_data.extend(page_items)
            print(f"✅ 第{params['page']}页采集完成,本页{len(page_items)}条评论")
            return True
        elif code == "2000":
            print(f"❌ 第{params['page']}页:商品不存在或无评论")
            return False
        elif code == "4008":
            print(f"⚠️ 第{params['page']}页:访问超限,等待5秒重试")
            time.sleep(5)
            if retry > 0:
                self.fetch_one_page(params, retry - 1)
            return False
        elif code == "4017":
            print(f"⚠️ 第{params['page']}页:请求超时,重试中")
            time.sleep(3)
            if retry > 0:
                self.fetch_one_page(params, retry - 1)
            return False
        else:
            print(f"❌ 第{params['page']}页 异常:{res.get('reason')}")
            return False
    except Exception as e:
        print(f"❌ 网络异常:{str(e)}")
        return False

def run_all_task(self, task_list):
    for task in task_list:
        self.fetch_one_page(task)
        time.sleep(0.8)
    return self.review_data

Agent3:数据清洗 & 格式规整

class CleanAgent:

def clean_data(self, raw_list):
    clean_result = []
    for item in raw_list:
        new_item = {}
        # 基础评论信息
        new_item["评论内容"] = item.get("rate_content", "")
        new_item["评论时间"] = item.get("rate_date", "")
        new_item["用户昵称"] = item.get("display_user_nick", "")
        new_item["购买规格"] = item.get("auction_sku", "")
        new_item["追评内容"] = item.get("add_feedback", "")

        # 图片链接拼接
        pic_list = item.get("pics", [])
        new_item["晒图链接"] = ",".join(pic_list) if pic_list else ""
        add_pic = item.get("add_feedback_images", [])
        new_item["追评图片"] = ",".join(add_pic) if add_pic else ""

        clean_result.append(new_item)
    print(f"\n数据清洗完成,有效评论共:{len(clean_result)} 条")
    return clean_result

Agent4:评论智能分析(简易语义标签)

class AnalyzeAgent:

def analysis_text(self, data_list):
    positive_words = ["好用", "不错", "推荐", "性价比", "质量好", "满意", "回购"]
    negative_words = ["不好", "差劲", "漏水", "过敏", "不值", "失望"]

    for row in data_list:
        content = row["评论内容"] + row["追评内容"]
        label = "中性评价"
        # 简单正负向判断
        if any(w in content for w in positive_words):
            label = "好评"
        if any(w in content for w in negative_words):
            label = "差评/吐槽"
        row["评价标签"] = label
    return data_list

Agent5:报表导出Agent

class ExportAgent:

def save_to_excel(self, data):
    df = pd.DataFrame(data)
    file_name = f"商品评论数据_{GOODS_ID}.xlsx"
    df.to_excel(file_name, index=False)
    print(f"\n📁 报表导出成功!文件:{file_name}")
    print(f"📊 总计采集并分析评论:{len(data)} 条")

程序入口

if name == "__main__":

# 1. 生成任务队列
task_agent = TaskAgent()
tasks = task_agent.create_task_list()

# 2. 批量采集评论
fetch_agent = ReviewFetchAgent()
raw_data = fetch_agent.run_all_task(tasks)

if not raw_data:
    print("未采集到任何评论数据,程序退出")
else:
    # 3. 数据清洗
    clean_agent = CleanAgent()
    clean_data = clean_agent.clean_data(raw_data)

    # 4. 智能评价分析
    analyze_agent = AnalyzeAgent()
    final_data = analyze_agent.analysis_text(clean_data)

    # 5. 导出Excel报表
    export_agent = ExportAgent()
    export_agent.save_to_excel(final_data)

运行前置准备
安装依赖库:
bash

运行

pip install requests pandas openpyxl
修改代码内 API_KEY、API_SECRET、GOODS_ID 为自己的凭证与目标商品 ID
按需调整采集页码、排序规则,直接运行即可
四、落地实战场景
场景 1:竞品深度调研
抓取同行爆款商品全量评论,通过分析标签区分好评、差评,快速总结竞品核心卖点、用户吐槽点,用来优化自身产品、调整定价与宣传话术。

场景 2:店铺产品复盘
定期采集自家商品评论,批量查看追评、晒图反馈,及时发现质量问题、售后隐患,快速调整供应链与客服方案。

场景 3:电商文案 / 标题优化
从高赞评论里提取用户高频用词、种草话术,直接复用至商品标题、详情页、短视频文案,更贴合用户口语习惯,提升转化。

场景 4:舆情监控
设置定时任务,每日自动抓取最新评论,第一时间发现负面评价,做到及时介入处理,维护店铺口碑。

五、常见问题 FAQ
Q1:为什么最多只能采集 100 页评论?
A:接口单商品页码上限为 100 页,每页固定 10 条数据,总计最多 10000 条评论,主流商品该数量可覆盖绝大部分有效评价。如需更多样本,可多时段分批次采集。

Q2:频繁报 4008 并发超限如何优化?
A:一是加大代码中 time.sleep 休眠间隔;二是拆分页码,分多批次、分时段执行采集任务,避开请求高峰。

Q3:图片链接无法直接打开?
A:返回的图片为相对地址,拼接 https: 前缀即可正常访问,代码中可自行增加地址补全逻辑。

Q4:如何对接大模型实现更精细的评论分析?
A:在 AnalyzeAgent 模块对接大模型接口,传入评论文本,实现情感打分、痛点分类、关键词提取、自动生成分析报告,进一步提升智能化程度。

Q5:商品 ID 正确但返回 2000 无数据?
A:商品已下架、违规封禁、隐藏评论都会出现该报错,核对商品状态,更换商品 ID 重试即可。

六、总结
借助 taobao.item_review 标准化评论接口 + 多 AI Agent 架构,彻底摆脱人工翻页、整理评论的重复工作。整套方案开发成本低、稳定性强,规避了传统爬虫 IP 封禁、解析失效等问题。

从基础的批量采集,到进阶的数据清洗、智能语义分析、报表自动导出,全流程无人值守,不管是个人做竞品分析、中小团队日常运营,还是对接企业自研 ERP、数据分析系统,都能快速落地。在此基础上,还可以拓展评论词云生成、负面评论预警、多商品批量遍历等功能,不断完善整套自动化体系。


电商数据猿
7 声望3 粉丝

科技改变生活