当前位置: 首页 > news >正文

影刀RPA新手教程:大众点评数据采集完全指南——店铺信息、用户评价与竞争对手分析

影刀RPA新手教程:大众点评数据采集完全指南——店铺信息、用户评价与竞争对手分析

作者:林焱

一、认识影刀与安装配置

我做了三年餐饮行业运营,每个月都要手动翻大众点评看同行的新评价、新菜单、新活动。一个商圈几十家店,每家几十条新评价,看完眼睛都快瞎了。后来一个技术朋友推荐我试试影刀RPA,一周时间就把店铺监控流程搭出来了。

影刀的安装很简单,Windows系统直接下载安装包,默认路径一路点击即可。装好后有两个关键配置:一是安装Chrome浏览器扩展(在影刀编辑器顶部菜单「工具」-「浏览器扩展管理」),二是确认Chrome版本与影刀兼容。我当时就栽在这里——Chrome自动更新后,影刀扩展失效了,所有流程跑不起来。解决方案是把Chrome的自动更新关掉,或者每次Chrome大版本更新后等影刀发布对应的扩展版本。

更多项目经验可访问 home.linyan.cloud 查看。

二、元素定位四合一:XPath+CSS+正则

大众点评的页面元素层级嵌套非常深,单靠一种定位方式大概率翻车。以下是我实测可用的定位方案。

XPath定位店铺名称:

//div[contains(@class,'shop-list')]//h4[contains(@class,'shop-name')]

CSS选择器定位评分:

div.shop-info span.shop-rating

正则提取点评数据中的数字:

原始文本:人均 ¥88 口味:8.5 环境:8.2 服务:8.0 提取人均:人均\s*[¥¥]\s*(\d+) 提取口味:口味:(\d+\.?\d*) 提取环境:环境:(\d+\.?\d*) 提取服务:服务:(\d+\.?\d*)

影刀四合一配置:

{"定位策略":"四合一","主定位":"XPath","xpath":"//div[contains(@class,'review-item')]","备选_css":"div.review-item","备选_ID":"review-list","备选_文本":"全部评价","等待超时":10000,"重试次数":3}

三、变量与数据类型

大众点评数据维度多,变量结构需要精心设计。

全局变量:

变量名:dianping_cookie 类型:字符串 说明:大众点评登录态Cookie,有效期约7天

字典变量——单店信息:

店群矩阵自动化突破运营极限!

变量名:shop_info 值: { "店名": "海底捞火锅", "地址": "朝阳区建国路88号", "人均": 128, "口味评分": 8.8, "环境评分": 8.5, ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a00d93ddacb344c2be493f2709da2d3b.png#pic_center) "服务评分": 9.0, "评论总数": 3568, "商圈": "国贸", "分类": "火锅" }

数据表格——多店对比:

店名人均口味环境服务评论数商圈近30天新增评论
店A888.58.28.02356国贸156
店B1289.08.88.55689国贸423

四、流程控制

大众点评有严格的反爬机制,翻页逻辑需要特别设计。

翻页采集(不确定总页数情况):

指令:无限循环 循环体: 指令:批量数据抓取 网页对象:当前页面 行元素://div[contains(@class,'shop-item')] 指令:获取元素对象 元素:xpath=//a[contains(@class,'next')] 保存至:next_btn 指令:If条件判断 条件:next_btn.class中包含disabled True:退出循环 False:点击下一页后随机等待2-5秒 结束循环

评论翻页(滚动加载):

指令:无限循环 循环体: 指令:记录当前评论总数 保存至:review_count_before 指令:执行JS脚本 脚本:window.scrollTo(0, document.body.scrollHeight) 指令:等待 时长:3000毫秒 指令:获取当前评论总数 保存至:review_count_after 指令:If条件判断 条件:review_count_before == review_count_after True:退出循环(已到底部) 结束循环

五、网页自动化实战

大众点评的网页自动化是我遇到的难度最高的网站之一。

反爬应对——这是我当时踩过的大坑:

我第一次运行流程,采集到第3页就被封了IP,弹出了验证码。后来总结了一套反爬节奏:

指令:设置网络请求头 User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 // 每次操作之间加入随机等待 指令:随机等待 最短:3000毫秒 最长:8000毫秒 // 每采集5页休息一分钟 指令:If条件判断 条件:当前页数 % 5 == 0 True:等待60000毫秒

模拟人工滚动:

指令:执行JS脚本 脚本: var scrollStep = 300; var scrollInterval = setInterval(function() { window.scrollBy(0, scrollStep); if (window.scrollY + window.innerHeight >= document.body.scrollHeight) { clearInterval(scrollInterval); } }, 200);

六、数据处理

评论情感分析(Python协同):

指令:Python脚本 脚本内容: import jieba def sentiment_score(text): positive_words = ['好吃','推荐','不错','棒','优秀','满意','值得'] negative_words = ['难吃','差评','失望','不值','踩雷','一般'] pos_count = sum(1 for w in positive_words if w in text) neg_count = sum(1 for w in negative_words if w in text) if pos_count > neg_count: return '正面' elif neg_count > pos_count: return '负面' else: return '中性' comments = 影刀获取的评论列表 results = [sentiment_score(c) for c in comments]

竞争对手综合分析:

指令:Python脚本 脚本内容: # 同商圈竞品对比分析 def competitor_analysis(our_shop, competitors): report = [] report.append(f"【{our_shop['name']}】竞品分析报告") report.append(f"本店口味评分:{our_shop['taste']},商圈均值:{avg_taste}") # 找出评分高于本店的竞争对手 threats = [c for c in competitors if c['taste'] > our_shop['taste']] for t in threats: gap = t['taste'] - our_shop['taste'] report.append(f"⚠ 威胁:{t['name']},评分高出{gap}分") return '\n'.join(report)

七、鼠标键盘与图像操作

大众点评有些数据需要鼠标交互才能展示。

鼠标悬停查看星级详情:

指令:鼠标移动到元素 元素:xpath=//div[contains(@class,'star-box')] 移动方式:模拟人工 指令:等待 时长:1000毫秒 指令:获取元素文本 元素:xpath=//div[contains(@class,'star-tip')] 保存至:star_detail

图像识别验证码:

指令:元素截图 元素:xpath=//img[contains(@class,'captcha')] 保存至:captcha.png 指令:OCR识别 图片:captcha.png 识别引擎:默认 保存至:captcha_result

验证码处理是个持久战,目前还没有完美方案。我的经验是降低采集频率,不要触发风控机制才是最好的策略。

八、进阶技能

多商圈轮询采集:

指令:循环 类型:ForEach 列表:[国贸,三里屯,望京,中关村,五道口] 循环体: 指令:在网页中输入 元素:id=search-input 输入内容:{商圈名} 指令:点击元素 元素:xpath=//button[@class='search-btn'] 指令:执行子流程 子流程:店铺列表采集

代理IP轮换:

指令:Python脚本 脚本内容: import random proxies = [ 'http://proxy1:8080', 'http://proxy2:8080', 'http://proxy3:8080' ] current_proxy = random.choice(proxies) # 注意:影刀内置浏览器目前不直接支持代理切换 # 此方案适用于HTTP请求方式获取数据

数据增量更新:

指令:Python脚本 脚本内容: # 读取历史数据 old_data = 影刀Excel读取(历史文件) new_data = 影刀当前采集数据 # 找出新增评论 old_review_ids = {item['评论ID'] for item in old_data} new_items = [item for item in new_data if item['评论ID'] not in old_review_ids] # 合并写入 all_data = old_data + new_items

九、平台实战——完整竞品监控方案

完整流程设计:

  1. 打开大众点评首页
  2. 加载Cookie保持登录
  3. 切换目标城市
  4. 依次搜索各商圈
  5. 采集店铺列表
  6. 对每个店铺采集最新评论
  7. 数据清洗与对比分析
  8. 生成竞品报告
  9. 发送飞书通知

我当时搭建这个流程,遇到的最大问题不是技术,而是数据量太大。国贸商圈光火锅类目就有近200家店,每家采集最近50条评论,流程跑了3个多小时。后来优化了一下:只采集有评分变化的店铺,评论只采集最近30天新增的,运行时间缩到了40分钟。

十、系统联动

飞书多维表格写入:

temu店群自动化报活动案例


指令:发送HTTP请求 方法:POST URL:https://open.feishu.cn/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/batch_create 请求头: Authorization: Bearer {tenant_access_token} Content-Type: application/json 请求体: { "records": [ { "fields": { "店名": "xxx", "评分": 8.5, "今日新增评论": 23 } } ] }

钉钉机器人预警:

指令:发送HTTP请求 URL:https://oapi.dingtalk.com/robot/send?access_token=xxx 方法:POST 请求体: { "msgtype": "markdown", "markdown": { "title": "竞品预警", "text": "**竞品异常预警**\n> 店铺:{店名}\n> 事件:30天内新增差评超过50条\n> 时间:{当前时间}" } }

Excel报表自动生成:

指令:写入Excel文件 文件路径:D:\报表\大众点评竞品分析_{日期}.xlsx 工作表1:店铺总览 工作表2:评分趋势 工作表3:评论抽样

十一、工程化与规范

流程模块化设计:

大众点评监控/ ├── 主流程_每日监控.flow ├── 模块_登录.flow ├── 模块_店铺列表采集.flow ├── 模块_评论采集.flow ├── 模块_数据处理.flow ├── 模块_通知发送.flow ├── 配置/ │ ├── cookie.txt │ ├── 商圈列表.json │ └── 关键词列表.json └── 数据/ ├── 历史/ └── 日报/

注释模板:

// 模块:店铺列表采集 // 作者:林焱 // 日期:2025-06-24 // 说明:按商圈搜索并采集店铺基础信息 // 输入:商圈名称(字符串) // 输出:店铺数据表格

错误重试策略:

指令:设置 最大重试次数:3 重试间隔:5000毫秒 失败处理:跳过当前条目,记录到错误日志

十二、速查表与常见报错

定位速查表:

目标XPath
店铺名称//h4[contains(@class,‘shop-name’)]
评分//span[contains(@class,‘sml-rank-stars’)]
人均消费//span[contains(@class,‘avg-price’)]
评论内容//div[contains(@class,‘review-words’)]
评论时间//span[contains(@class,‘time’)]
商圈筛选//a[contains(@class,‘area-item’)]

常见报错:

报错1:验证码拦截
错误信息:访问过于频繁,请验证
解决方案:降低采集频率(建议间隔5秒以上),模拟人工行为,必要时切换IP

报错2:Cookie频繁失效
错误信息:登录已过期
解决方案:将Cookie有效期检测加入前置流程,失效时自动重新获取

报错3:评论只加载了部分
错误信息:采集到的评论数量远少于页面显示
解决方案:使用滚动加载方案,每次滚动后等待3秒,循环直到评论数不再增加

报错4:CSS选择器定位不稳定
错误信息:同一个选择器,有时候能定位到有时候不能
解决方案:使用四合一备用策略,首选XPath,备用CSS,最后用文本定位兜底

内容标签:影刀RPA 大众点评 数据采集 竞品分析 店铺监控 评论采集 网页自动化

作者:林焱

http://www.jsqmd.com/news/1098340/

相关文章:

  • 终极指南:5步快速掌握Unity 3D模型导入神器GLTFUtility
  • 告别CMAC!NIST SP800-108新版密钥派生实战:手把手教你用KMAC128/256
  • 华硕笔记本终极轻量控制方案:GHelper完全使用指南
  • 零基础Linux运维实战:Zabbix、Docker、MySQL、Nginx部署与监控
  • 【毕业设计】古典舞在线交流平台 SpringBoot+Vue 完整源码(含论文+数据库,可运行)
  • 影刀RPA新手教程:变量是什么——用生活中的盒子来类比
  • 【公共云三十问 之一】什么是公共云?
  • 终极指南:Destiny 2 Solo Enabler端口配置完全掌控
  • 中间件安全攻防实战:从CVE漏洞复现到纵深防御体系构建
  • 告别LED闪烁:用串口助手和printf()给你的51单片机代码做个“体检”
  • ai模特动态换装全流程指南,图片生图与批量工具实测对比
  • MySQL数据分析入门:从零搭建环境到电商实战案例
  • 影刀RPA新手教程:天猫旗舰店自动化完全指南——SKU管理、促销配置与客服消息处理
  • 保姆级教程:用SigmaStudio配置A2B数字麦克风(AD2428WD-EVB主控,AD2428WC-EVB从板)
  • Linux 块设备驱动开发:从请求队列到 I/O 调度的内核路径解析
  • SENAITE LIMS:实现实验室数字化转型的智能解决方案
  • 用过 5 个 AI 写论文才发现:笔墨 AI 才是真的适配高校学术规范
  • 系统分析师精简版知识点+考点
  • Codex ENOTFOUND 域名解析失败解决方法
  • 2026年最火的词“前额叶友好“到底在说什么?一篇说清
  • 从零到一:Hermes Agent私有化部署与自定义技能开发实战
  • 影刀RPA新手教程:图像识别点击完全指南——找不到XPath时用图像定位
  • 2026年上半年AI全景回顾:从模型战到Agent战的范式跃迁
  • 影刀RPA新手教程:多流程协调完全指南——让一个流程跑完之后自动触发另一个
  • 影刀RPA新手教程:变量未定义报错完全指南——为什么说变量不存在
  • 别再手动补桩!AI驱动的边界测试生成术(含Mock策略决策树+异常传播路径图谱)
  • 【课程设计/毕业设计】基于 SpringBoot 的学生评教数据统计分析系统的设计与实现 基于 SpringBoot 的高校教学反馈评价服务系统【附源码、数据库、万字文档】
  • WVP-GB28181-Pro视频点播超时难题深度剖析:架构解析与性能优化最佳实践
  • 传统线下体验店必须大规模,编程小型楼中店体验营收模型,低投入精准匹配小众设计师品牌。
  • 别再磨掉所有铁锈!Rust Reformer 正确使用指南(附完整流程)