×

api 数据挖掘

电商评论自动化监控 + 文本分析落地教程,一套脚本搞定竞品舆情实时追踪

admin admin 发表于2026-07-10 10:08:23 浏览8 评论0

抢沙发发表评论

前言

做电商运营、产品调研、竞品分析的朋友应该都有同一个痛点:想持续监控自家和竞品商品的用户真实反馈,手动翻页复制评价效率极低,每日几十款商品轮询几乎要耗费半天人力;拿到一堆零散评论文本后,又要人工筛选好评、差评、高频吐槽点,很难快速提炼产品优化方向。

过去试过原生页面批量采集,频繁触发平台访问限制,数据漏采、拦截报错层出不穷;自建采集框架又要处理账号、延时、分页、文本清洗全套逻辑,开发周期长、维护成本高。

今天分享一套成熟落地方案,借助 OpenClaw 数据采集能力,搭配 Python 轻量脚本实现定时自动拉取商品全量评价、增量监控新增评论、文本情感统计、高频词分析全流程,无需复杂环境搭建,新手复制代码即可运行,跨境、国内电商店铺通用。

一、方案整体思路

  1. 基础数据获取:依托 OpenClaw 封装成熟的商品评论获取能力,一键传入商品编号即可返回全部评价内容(评分、评价正文、晒图、追评、评价时间、买家标签),自动分页无需手动循环页码;

  2. 增量监控机制:本地存储已采集评论 ID,定时任务执行时只拉取新增内容,避免重复数据占用存储;

  3. 数据持久化:将原始评价存入 CSV 文件,方便 Excel 可视化查看;

  4. 自动化分析模块:内置分词、情感打分、差评关键词统计,自动输出分析报表;

  5. 预警拓展:可搭配邮件 / 企业微信推送负面评价告警,实现舆情实时监控。

二、前置环境准备

1. 工具准备

  • OpenClaw 账号(注册后获取专属访问凭证,用于脚本鉴权)

  • Python 3.8 及以上版本

  • 依赖库安装,执行以下命令:

pip install requests pandas jieba wordcloud

2. 素材准备

目标商品 ID 清单,可批量录入 txt 文档,脚本支持批量

循环多款商品同步监控。

三、完整可运行代码(分三大模块)

模块 1:核心数据拉取工具(基于 OpenClaw 能力获取商品评价)

import requests
import time
import pandas as pd
import jieba
from collections import Counter

# =====================配置区(自行修改)=====================
# OpenClaw个人凭证
ACCESS_TOKEN = "你的专属凭证"
# 需要监控的商品ID列表
ITEM_ID_LIST = ["723456123456", "723456123789"]
# 监控轮询间隔,单位秒,建议3600(1小时)
LOOP_INTERVAL = 3600
# 历史数据存储文件
SAVE_FILE = "shop_comment_data.csv"
# 已采集评论ID缓存,去重使用
record_id_set = set()
# ==========================================================

def get_item_comments(item_id):
    """
    获取单款商品全部评价,自动分页
    """
    all_comments = []
    page = 1
    while True:
        # 构造请求参数
        params = {
            "token": ACCESS_TOKEN,
            "item_id": item_id,
            "page": page,
            "page_size": 50
        }
        # 请求数据
        resp = requests.get("https://data-claw-service.com/comment/query", params=params, timeout=30)
        res_json = resp.json()
        # 判断返回状态
        if res_json.get("code") != 200:
            print(f"商品{item_id} 第{page}页获取失败:{res_json.get('msg')}")
            break
        comment_list = res_json.get("data", {}).get("list", [])
        if not comment_list:
            print(f"商品{item_id} 评价数据全部拉取完成,共{len(all_comments)}条")
            break
        # 过滤已采集旧数据,只保留新增评论
        new_comment = []
        for item in comment_list:
            cid = item.get("comment_id")
            if cid not in record_id_set:
                record_id_set.add(cid)
                new_comment.append(item)
        all_comments.extend(new_comment)
        page += 1
        time.sleep(1)
    return all_comments

# 模块2:数据清洗与本地存储
def save_comment_data(comment_list):
    if not comment_list:
        return
    df_new = pd.DataFrame(comment_list)
    # 判断本地文件是否存在,追加写入
    try:
        df_old = pd.read_csv(SAVE_FILE, encoding="utf-8-sig")
        df_total = pd.concat([df_old, df_new], ignore_index=True)
    except FileNotFoundError:
        df_total = df_new
    # 去重保存
    df_total.drop_duplicates(subset=["comment_id"], keep="last", inplace=True)
    df_total.to_csv(SAVE_FILE, index=False, encoding="utf-8-sig")
    print(f"新增{len(df_new)}条评价,当前总数据量:{len(df_total)}")

# 模块3:评论数据分析(情感、高频词统计)
def comment_analysis():
    df = pd.read_csv(SAVE_FILE, encoding="utf-8-sig")
    # 1. 基础评分统计
    score_stats = df["score"].value_counts().sort_index()
    print("=====商品评分分布统计=====")
    print(score_stats)
    # 区分好评差评(4-5星好评,1-2星差评,3星中性)
    good = len(df[df["score"] >= 4])
    bad = len(df[df["score"] <= 2])
    mid = len(df[df["score"] == 3])
    print(f"好评数量:{good} 差评数量:{bad} 中性评价:{mid}")
    # 2. 差评文本分词,提取高频吐槽词
    bad_text = "".join(df[df["score"] <= 2]["content"].astype(str))
    stop_words = {"的", "了", "很", "有点", "还", "就是", "但是", "一般", "感觉"}
    words = jieba.lcut(bad_text)
    filter_words = [w for w in words if len(w) > 1 and w not in stop_words]
    word_count = Counter(filter_words)
    print("\n=====差评高频关键词Top20=====")
    for word, cnt in word_count.most_common(20):
        print(f"{word}:{cnt}次")
    # 导出分析报表
    analysis_result = pd.DataFrame(word_count.most_common(30), columns=["关键词", "出现次数"])
    analysis_result.to_csv("comment_word_analysis.csv", index=False, encoding="utf-8-sig")

# 定时循环监控主程序
def main():
    global record_id_set
    # 加载历史评论ID,用于增量判断
    try:
        df_history = pd.read_csv(SAVE_FILE, encoding="utf-8-sig")
        record_id_set = set(df_history["comment_id"].tolist())
        print(f"加载历史采集记录,已有{len(record_id_set)}条历史评价")
    except FileNotFoundError:
        print("暂无历史数据,首次全量采集")
    # 循环监控
    while True:
        total_new = []
        for goods_id in ITEM_ID_LIST:
            print(f"\n开始采集商品:{goods_id}")
            new_data = get_item_comments(goods_id)
            total_new.extend(new_data)
        # 保存新增数据并分析
        if total_new:
            save_comment_data(total_new)
            comment_analysis()
        else:
            print("本轮无新增评价,等待下一轮监控...")
        print(f"等待{LOOP_INTERVAL/60}分钟后再次采集")
        time.sleep(LOOP_INTERVAL)

if __name__ == "__main__":
    main()

四、代码核心功能拆解说明

1. 增量采集,避免重复采集浪费资源

脚本启动时自动读取本地历史文件,缓存所有已采集评论唯一标识;每次拉取数据时自动过滤历史内容,仅保存当日 / 当轮新增评价,长期运行数据量不会冗余。

2. 自动分页,无需手动处理分页逻辑

OpenClaw 底层已封装分页逻辑,代码内仅需循环页码,工具自动处理平台分页限制、访问延时,不会出现漏采、中断问题,单商品上万条评价也能完整拉取。

3. 一站式数据分析,直接输出运营可用结论

  • 自动统计五星、四星、三星、两星、一星评价占比,直观判断整体口碑;

  • 单独提取所有差评文本,使用 jieba 分词过滤无意义助词,统计用户吐槽高频词汇,快速定位产品缺陷(如 “物流慢”“材质差”“尺寸偏小” 等);

  • 原始评价数据、关键词分析结果分别导出两份 CSV 表格,可直接导入 Excel 做可视化图表。

4. 7×24 小时定时监控,实现舆情预警

修改LOOP_INTERVAL参数可自定义采集频率:

  • 竞品重点监控:300 秒(5 分钟)一轮,第一时间捕捉负面评价;

  • 常规店铺监控:3600 秒(1 小时)一轮,平衡采集速度与资源消耗。

五、实操落地优化技巧

1. 多商品批量监控

ITEM_ID_LIST写入外部 txt 文档,通过读取文件循环商品,一次性监控几十上百款竞品,无需手动修改代码。

# 批量读取商品ID示例
with open("goods_id.txt", "r", encoding="utf-8") as f:
    ITEM_ID_LIST = [line.strip() for line in f if line.strip()]

2. 负面评价实时推送告警

新增企业微信 / 钉钉机器人推送函数,检测到新增差评自动推送消息,运营不用每天查看表格:

def send_warning(text):
    robot_url = "你的机器人webhook地址"
    data = {"msgtype": "text", "text": {"content": text}}
    requests.post(robot_url, json=data)
# 在save_comment_data函数内新增差评判断
bad_new = [i for i in new_comment if i.get("score") <= 2]
if bad_new:
    send_warning(f"检测到{len(bad_new)}条新增差评,请及时查看!")

3. 适配跨境多语言商品

OpenClaw 支持海外站点商品评价拉取,只需调整请求参数区域标识,脚本无需大幅改动,搭配翻译库可实现多语言评论统一解析。

六、对比传统采集方案优势

  1. 规避平台访问限制:原生爬虫频繁请求极易被风控拦截,OpenClaw 自带分布式访问策略,长期稳定采集;

  2. 降低开发维护成本:不用处理 cookie、签名、反爬校验、验证码等复杂底层逻辑,核心业务代码仅几十行;

  3. 数据维度完整:自动同步评价配图、追评、买家规格标签、评价时间等运营关键信息,普通爬虫很难一次性完整获取;

  4. 支持企业级规模化:支持上万款商品长期轮询监控,数据稳定输出,适合电商团队、市场调研工作室批量使用。

七、常见问题排查

  1. 数据返回为空:检查凭证是否填写正确、商品 ID 是否有效,部分下架商品无法获取评价;

  2. 编码乱码:保存文件统一使用utf-8-sig编码,Excel 打开不会出现中文乱码;

  3. 采集速度慢:调大page_size单次拉取条数,或延长单商品间隔时间,避免请求拥挤;

  4. 分词无有效关键词:自行扩充停用词列表,过滤更多无意义语气词,提升分析精准度。

总结

这套基于 OpenClaw 搭建的自动化评论监控分析方案,完美解决电商人长期以来手动整理评价、滞后发现舆情的痛点。代码轻量化、可二次拓展,不管是个人卖家做竞品调研,还是企业运营团队做全店铺口碑监控都能直接落地。

长期运行后,沉淀的历史评价数据还能用于产品迭代、竞品差异化分析、售前话术优化,把零散用户反馈转化为可落地的业务决策依据,大幅降低数据收集与分析的人力成本。


少长咸集

群贤毕至

访客