影刀RPA新手教程:电商评论挖掘完全指南——批量采集用户评论、情感分析与词云生成

📅 2026/7/1 4:01:26
影刀RPA新手教程:电商评论挖掘完全指南——批量采集用户评论、情感分析与词云生成
影刀RPA新手教程电商评论挖掘完全指南——批量采集用户评论、情感分析与词云生成作者林焱一、认识影刀与安装配置做电商最怕的不是差评而是不知道用户为什么给差评。我刚开始做店铺运营时每天手动翻评论做标注翻到手酸也翻不完。直到用影刀RPA搭了一套评论自动采集情感分析的流程每天半小时就能跑完所有商品的评论分析。影刀安装前确认你的Windows系统是64位、内存至少8GB。下载安装包后双击运行默认安装就行。安装完成后打开影刀编辑器第一步去「工具」菜单安装Chrome浏览器扩展第二步在「设置」里确认Python环境已启用。这两个配置缺一不可我当时忘了开Python支持后面写情感分析脚本一直报错排查了一上午。关于更多自动化实践分享可访问 home.linyan.cloud 查看。二、元素定位四合一XPathCSS正则电商评论区域的结构各异淘宝、京东、拼多多的评论HTML结构完全不同。淘宝评论XPath//div[contains(class,comment-item)]//div[contains(class,comment-content)]京东评论CSS选择器div.comment-item div.comment-con正则提取评论中的关键信息提取购买日期(\d{4}-\d{2}-\d{2}|\d{4}年\d{1,2}月\d{1,2}日) 提取颜色规格颜色[:]\s*(\S)\s*规格[:]\s*(\S) 提取追评标记追评|追加|用了.*[天后]影刀四合一定位{淘宝评论定位:{主_XPath://div[contains(class,comment-item)],备选_CSS:div.tb-rev-item,备选_属性:data-spm-anchor-id,备选_文本:***,分隔符模式:每个评论块以用户头像为起点}}三、变量与数据类型评论数据结构变量名comment_record 类型字典 值 { 商品ID: 100000123456, 商品名称: XX品牌无线蓝牙耳机, 用户昵称: 匿***名, 评论内容: 音质不错戴着也挺舒服的。用了三天来评价续航大概6小时左右。, 评分: 5, 评论时间: 2025-06-20, 购买颜色: 白色, [video(video-8Pi1fQq0-1782841836964)(type-csdn)(url-https://live.csdn.net/v/embed/525010)(image-https://v-blog.csdnimg.cn/asset/f4faa587144cb7070f19e8b36813806b/cover/Cover0.jpg)(title-店群矩阵自动化突破运营极限)] 购买规格: 标准版, 是否有追评: false, 追评内容: , 点赞数: 12, 回复数: 2, 采集平台: 淘宝, 采集时间: 2025-06-24 14:30:00 }情感分析结果字典值 { 评论内容: 音质不错, 情感标签: 正面, 情感得分: 0.85, 关键词: [音质,不错], 是否有购买意向: true }数据表格设计评论ID商品用户评分内容情感得分关键词日期001耳机匿A5音质好正面0.9音质06-20四、流程控制多商品轮询采集指令循环 类型ForEach 列表product_id_list从数据库或Excel读取 循环体 指令打开网页 URLhttps://detail.tmall.com/item.htm?id{当前商品ID} 指令点击元素 元素xpath//a[contains(text(),评价)] 指令等待元素出现 元素xpath//div[contains(class,comment-container)] 超时10000毫秒 // 执行评论翻页采集 指令执行子流程_评论翻页采集 指令随机等待 最短3000毫秒 最长10000毫秒 结束循环评论翻页采集带总页数判断指令获取元素文本 元素xpath//span[contains(text(),共)] 保存至page_text 指令正则提取 文本page_text 正则\d 保存至total_pages 指令For次数循环 起始1 结束total_pages 循环体 指令批量数据抓取 行元素//div[contains(class,comment-item)] 列 评论内容.//div[contains(class,comment-content)] 评分.//div[contains(class,star)] 时间.//span[contains(class,date)] 颜色.//span[contains(class,sku)] 保存至comment_data_table 指令If条件判断 条件当前页 total_pages True 指令点击元素 元素xpath//a[contains(text(),下一页)] 指令随机等待 最短2000最长5000毫秒 结束循环五、网页自动化实战跨平台评论采集适配淘宝、京东、拼多多三个平台的评论页结构各不同但可以用同一套框架适配流程参数 平台类型{从配置读取} 指令Switch条件分支 分支平台 淘宝 指令打开网页 URLhttps://rate.taobao.com/... 分支平台 京东 指令打开网页 URLhttps://item.jd.com/{商品ID}.html#comment 分支平台 拼多多 指令打开网页 URLhttps://mobile.yangkeduo.com/goods_comments.html?goods_id{商品ID}动态滚动加载评论这是我当时踩过的大坑——淘宝的评论不是一次性加载的需要不断滚动才能看到更多评论指令无限循环 循环体 指令获取当前评论数 保存至count_before 指令执行JS脚本 脚本 let commentBox document.querySelector(.comment-list); commentBox.scrollTop commentBox.scrollHeight; 指令等待 2000毫秒 指令获取当前评论数 保存至count_after 指令If条件判断 条件count_before count_after True退出循环 结束循环六、数据处理情感分析——Python协同核心代码指令Python脚本 脚本内容 import jieba import collections # 基础情感词典 positive_words { 好, 不错, 满意, 喜欢, 推荐, 棒, 赞, 优秀, 性价比高, 实惠, 舒服, 漂亮, 好看, 耐用, 值得, 好评, 完美, 惊喜, 方便, 实用, 精致, 正品 } negative_words { 差, 不好, 不满意, 后悔, 不值, 垃圾, 坑, 难用, 失望, 差评, 粗糙, 味道不对, 坏了, 退货, 退款, 投诉, 假货, 劣质, 破损 } def analyze_sentiment(comment): words set(jieba.lcut(comment)) pos_score len(words positive_words) neg_score len(words negative_words) if pos_score neg_score: return (正面, pos_score / (pos_score neg_score 1)) elif neg_score pos_score: return (负面, -neg_score / (pos_score neg_score 1)) else: return (中性, 0.0) # 批量分析 results [] for comment in raw_comments: label, score analyze_sentiment(comment[content]) results.append({ 内容: comment[content], 情感: label, 得分: score })词云数据生成指令Python脚本 脚本内容 import jieba from collections import Counter # 将所有评论合并 all_text .join([c[content] for c in comments]) # 分词并过滤停用词 stopwords {的,了,是,我,有,在,也,就,都,和,很,还} words [w for w in jieba.cut(all_text) if len(w) 1 and w not in stopwords] # 统计词频Top50 word_freq Counter(words).most_common(50) # 输出为可导入词云工具的格式 for word, freq in word_freq: print(f{word}: {freq})七、鼠标键盘与图像操作识别好评/差评图标有些平台的评分用图标星星展示而非数字指令元素截图 元素xpath//div[contains(class,star-box)] 保存至star_img.png 指令图像匹配 模板图片star_full.png金黄色满星 目标图片star_img.png 匹配阈值0.85 保存匹配数量至star_count下载评论中的图片附件指令获取元素属性 元素xpath//div[contains(class,comment-img)]//img 属性名src 保存至image_urls列表 指令循环 类型ForEach 列表image_urls 循环体 指令下载文件 URL{当前图片URL} 保存路径D:\评论图片\{商品ID}_{序号}.jpg 结束循环八、进阶技能评论去重与增量采集指令Python脚本 脚本内容 # 用评论内容时间的哈希做去重 import hashlib def dedup_comments(comments): seen set() unique [] for c in comments: dedup_key hashlib.md5( (c[content] c[date]).encode(utf-8) ).hexdigest() if dedup_key not in seen: seen.add(dedup_key) unique.append(c) return unique # 增量模式只保留新评论 old_keys set(读取历史文件的去重键) new_comments [c for c in current_comments if hashlib.md5((c[content]c[date]).encode()).hexdigest() not in old_keys]关键词预警机制指令Python脚本 脚本内容 alert_keywords [差评,退货,投诉,假货,质量差,过敏,破损,客服差] alerts [] for comment in comments: for kw in alert_keywords: if kw in comment[content]: alerts.append({ 商品: comment[product], 关键词: kw, 评论: comment[content][:100] }) break # 如果有预警发送通知 if alerts: 触发飞书通知(alerts)九、平台实战——完整评论分析流程某次帮一个护肤品店铺做评论分析目标是找出用户最关注的产品属性。流程步骤读取店铺商品列表Excel获取所有在售商品的ID对每个商品采集最近500条评论淘宝平台进行情感分析分离正面/负面评论分别对正面和负面评论做高频词提取生成词云数据输出分析报告最终发现了几个关键洞察正面评论高频词是滋润“不油腻”“吸收快”负面评论高频词是包装漏了“过敏”“味道不好闻”。运营团队据此优化了包装设计和产品配方次月差评率下降了40%。十、系统联动temu店群自动化报活动案例飞书通知——差评实时预警指令发送HTTP请求 URLhttps://open.feishu.cn/open-apis/bot/v2/hook/{webhook_token} 方法POST 请求体 { msg_type: post, content: { post: { zh_cn: { title: 差评预警 - {商品名称}, content: [ [{tag: text, text: 新增1条差评内容}], [{tag: text, text: {评论内容}}], [{tag: text, text: 请及时处理}] ] } } } }MySQL数据库写入指令执行SQL 数据库mysql://localhost:3306/ecommerce_db SQL INSERT INTO product_reviews (product_id, platform, user_name, rating, content, sentiment, keywords, collect_time) VALUES (?, ?, ?, ?, ?, ?, ?, NOW()) 参数[product_id, platform, user, rating, content, sentiment, keywords_json]十一、工程化与规范目录结构电商评论分析/ ├── 主流程_评论采集分析.flow ├── 子流程/ │ ├── 淘宝评论采集.flow │ ├── 京东评论采集.flow │ ├── 情感分析.flow │ └── 词云生成.flow ├── 词典/ │ ├── 正面词典.txt │ ├── 负面词典.txt │ └── 停用词表.txt ├── 数据/ │ ├── 原始评论/ │ └── 分析结果/ └── 配置/ └── 商品列表.xlsx采集频率规范爆款商品每天采集1次普通商品每3天采集1次长尾商品每周采集1次单次采集上限每个商品500条十二、速查表与常见报错评论定位速查表平台评论容器XPath评论内容评分日期淘宝//div[contains(class,‘comment-item’)].//div[contains(class,‘content’)].//div[contains(class,‘star’)].//span[contains(class,‘date’)]京东//div[contains(class,‘comment-item’)].//p[contains(class,‘comment-con’)].//div[class‘comment-star’].//span[contains(class,‘time’)]| 拼多多 | //div[contains(class,‘review-item’)] | .//div[contains(class,‘content’)] | .//span[contains(class,‘star’)] | .//span[contains(class,‘time’)] |常见报错报错1评论加载不全现象只采集到前几条评论原因评论采用懒加载需要滚动触发解决在采集前滚动评论区域到最底部每次滚动后等待2秒报错2情感分析结果不准现象明显的好评被判为负面原因基础词典覆盖不足解决根据行业扩展专属词典美容护肤类补充滋润“清爽”食品类补充好吃“新鲜”报错3跨平台评论格式不一致现象京东评论正常拼多多数据混乱原因不同平台HTML结构不同解决为每个平台编写独立的定位配置不要共用报错4评论图片下载失败现象下载的图片全是空文件原因图片链接需要Referer验证解决在HTTP请求头中添加对应平台的Referer内容标签影刀RPA 电商评论挖掘 情感分析 词云生成 Python协同 数据采集 文本分析作者林焱