影刀RPA新手教程淘宝直播数据监控完全指南——观看人数、互动数据与商品点击率采集作者林焱 | 实战向 | 全文约2300字前言淘宝直播现在是一个店标配但直播数据全靠人工盯着看一场直播下来运营的眼睛都快瞎了。更别说还要记录观看人数、互动数、商品点击率这些指标手动记到Excel里效率低还容易错。我用影刀RPA做过一个直播数据监控方案一场6小时的直播每30秒自动采集一次数据全程不用人管最后自动生成数据走势图。本篇把这个方案完整讲一遍。一、安装与初始化淘宝直播数据中台有两个入口一个是淘宝直播中台主播端一个是淘宝直播数据参谋商家端。两个页面的元素结构不一样需要分别处理。安装影刀之后新建应用淘宝直播数据监控在应用设置里勾选允许后台运行这样直播的时候可以把浏览器最小化不影响其他工作。浏览器启动参数浏览器Chrome 窗口状态最大化 启动网址https://liveplatform.taobao.com Cookie持久化启用我当时踩过一个坑淘宝直播页面用了大量的动态渲染页面加载完成的事件触发之后数据其实还在异步加载。直接开始采集会得到一堆空值。解决方法是用等待元素出现指令等观看人数那个数字出现之后再开始采集。二、元素定位四合一直播页面的元素定位是这套流程里最难的部分因为数据显示区域是用Canvas渲染的不是标准的DOM元素。能定位到的数据观看人数、点赞数、评论数这些在页面上有对应的DOM元素可以用XPath定位。//div[contains(class,viewer-count)] //span[contains(class,like-count)] //div[idcomment-count]定位不到的数据商品点击率、GMV实时数据这些在Canvas里只能通过截图OCR的方式获取。用影刀的截取网页区域指令把数据展示区域截下来然后调用OCR指令识别文字。OCR配置参数OCR引擎腾讯云OCR 识别类型通用印刷体 语言简体中文英文数字 置信度阈值0.7我当时试过直接用影刀内置的OCR识别率大概85%数字经常识别错。后来换了腾讯云OCR识别率提升到98%基本不用人工校正。XPath失效的备用方案直播页面的class名经常变用contains函数可以提高稳定性。# 不要用这种class一变就失效 //div[classviewer-count-2024-v3] # 用这种只要包含关键词就能定位到 //div[contains(class,viewer) and contains(class,count)]如果XPath也失效了用CSS选择器的属性通配符div[class*viewer][class*count]三、变量与数据类型直播监控产生的是时间序列数据变量设计要能支持按时间存储。单条数据结构data_point{timestamp:2024-11-01 20:15:30,viewer_count:12580,like_count:3400,comment_count:890,goods_click_rate:3.2,online_count:8900}全程数据存储用列表存储每个采集点的数据最后一次性写入Excel。live_data_list[]# 每次采集完append一次live_data_list.append(data_point)峰值记录除了全程数据还需要记录峰值用来做直播效果评估。拼多多店群自动化上架方案peak_data{max_viewers:0,max_viewers_time:,max_likes_per_min:0,max_likes_time:}# 每次采集时比较并更新ifcurrent_viewerspeak_data[max_viewers]:peak_data[max_viewers]current_viewers peak_data[max_viewers_time]current_time我当时没做峰值记录直播完之后老板问今天最高在线多少人我只能看着Excel里的数据一个个找非常尴尬。后来加了峰值记录老板再问的时候直接读变量就够了。四、流程控制直播数据监控是一个长时间运行的流程流程控制的设计很关键。主循环结构开始 ↓ 打开直播数据页面 ↓ 等待页面加载完成等待观看人数元素出现 ↓ 记录开始时间 ↓ 进入主循环 采集当前数据 写入内存列表 更新峰值 等待30秒 判断是否直播已结束观看人数0 或 页面出现直播已结束 是 → 退出循环 否 → 继续循环 ↓ 直播结束后写入Excel生成报告 ↓ 结束循环间隔设计采集频率不能太高30秒一次是比较合理的频率。太高会对淘宝服务器造成压力可能触发频率限制太低会漏掉数据波动。用等待指令实现间隔等待30000毫秒30秒但我建议用随机间隔比如在30秒的基础上加减5秒随机值更像人工操作。importtimeimportrandom sleep_time30000random.randint(-5000,5000)time.sleep(sleep_time/1000)五、网页自动化实战淘宝直播数据页面的具体操作步骤。进入直播实时数据页登录淘宝直播中台找到正在进行的直播点查看数据。这里有个坑如果直播刚开播数据页面需要手动刷新一次才会显示数据。用影刀的刷新网页指令在打开页面后等5秒再刷新一次。采集观看人数观看人数在页面上的位置比较固定用获取元素文本指令获取。XPath示例//div[data-moduleviewer]//span[data-fieldcount]有些时候这个数字是用动画效果变化的从0滚动到当前值直接获取可能拿到的是动画中间值。解决方法是等2秒再获取或者用获取元素属性获取data-value属性。采集互动数据点赞数、评论数、分享数采集方式和观看人数类似。注意这些数据可能在不同的标签页里需要用点击标签页指令切换。//div[roletab and contains(text(),互动数据)]商品点击率采集商品点击率在商品分析标签页里。需要先点标签页等页面加载完再采集。如果商品点击率数据在Canvas里用截图OCR的方式截取区域商品点击率数据卡片 OCR识别提取数字部分 正则提取从OCR结果中提取百分比数字正则表达式示例importre ocr_text商品点击率 3.2%matchre.search(r(\d\.?\d*)%,ocr_text)ifmatch:click_ratefloat(match.group(1))六、数据处理采集到的原始数据需要做清洗和处理才能变成有用的分析报告。数据格式统一从页面获取到的数字可能带有万字比如1.2万需要转换成标准数字。defparse_number(text):texttext.strip()if万intext:returnint(float(text.replace(万,))*10000)if亿intext:returnint(float(text.replace(亿,))*100000000)returnint(text)异常值过滤直播数据中经常出现异常值比如网络抖动导致观看人数突然掉到0或者OCR识别错误导致数字异常大。需要加过滤逻辑。defis_valid_viewer_count(count,prev_count):# 如果当前值是0但上一个值不是0可能是采集异常ifcount0andprev_count0:returnFalse# 如果当前值比上一个值大10倍以上可能是识别错误ifprev_count0andcountprev_count*10:returnFalsereturnTrue计算衍生指标原始数据采集到之后可以计算一些衍生指标比如每分钟新增观看人数 当前观看人数 - 1分钟前观看人数互动率 (点赞数 评论数) / 观看人数 * 100商品点击转化率 商品点击率 * 观看人数defcalc_engagement_rate(like_count,comment_count,viewer_count):ifviewer_count0:return0return(like_countcomment_count)/viewer_count*100七、鼠标键盘与图像直播数据页面有些操作需要模拟键鼠。滚动页面加载历史数据有些数据需要滚动页面才能看到用模拟滚动指令。滚动类型向下滚动 滚动距离500像素截图保存证据直播过程中的关键节点比如在线人数达到峰值的时候自动截图保存方便后续复盘。用截取整个网页或截取指定区域指令保存到本地文件夹文件名用时间戳命名。importtime screenshot_pathfC:\\live_screenshots\\{int(time.time())}.png处理弹窗淘宝直播页面偶尔会弹出是否允许通知之类的弹窗用图像识别点击指令检测到弹窗关闭按钮的图片就自动点击关闭。八、进阶技能多直播间同时监控如果一个公司有多个直播间同时开播可以用影刀的多标签页功能在一个浏览器里打开多个直播数据页面分别采集。用切换标签页指令在不同的直播数据页面之间切换。标签页索引0第一个直播间 采集数据 ↓ 标签页索引1第二个直播间 采集数据 ↓ ...循环断点续采直播长达6小时中间可能因为网络问题导致流程中断。需要支持断点续采从中断的地方继续采集。实现方式每次采集完一个数据点把当前采集时间写入本地配置文件用写入文件指令。流程启动时先读取配置文件如果有上次采集的时间记录就跳过已经采集过的时间段。# 写入断点记录withopen(C:\\live_monitor_progress.txt,w)asf:f.write(last_collect_time)# 读取断点记录try:withopen(C:\\live_monitor_progress.txt,r)asf:last_collect_timef.read().strip()except:last_collect_timeNone九、平台实战把以上所有模块整合起来配置成一个完整的直播监控应用。使用前准备登录淘宝直播中台确认账号有权限查看直播数据。在影刀里配置好OCR引擎推荐腾讯云OCR需要在OCR控制台获取密钥。准备好Excel模板用来存储采集结果。Excel模板列结构时间观看人数点赞数评论数分享数商品点击率在线人数运行方式方式一手动运行直播开始前启动流程直播结束后手动停止。方式二定时运行用影刀的定时任务功能每天固定时间启动运行6小时后自动停止。TEMU店群如何管理运营方式三无限运行直播结束检测流程自动判断直播是否结束结束后自动停止并生成报告。生成数据报告直播结束后用采集到的数据生成走势图。可以用影刀的写入Excel图表指令或者用Python的matplotlib库生成图片。importmatplotlib matplotlib.use(Agg)importmatplotlib.pyplotasplt# 绘制观看人数走势图times[d[timestamp]fordinlive_data_list]viewers[d[viewer_count]fordinlive_data_list]plt.plot(times,viewers)plt.savefig(C:\\live_reports\\viewer_trend.png)十、系统联动直播数据不应该只存在本地Excel里还需要和团队的其他系统联动。推送到飞书群每采集10个数据点约5分钟把当前数据推送到飞书群让运营团队实时了解直播情况。用影刀的发送HTTP请求指令调用飞书机器人的Webhook接口。Webhook地址https://open.feishu.cn/open-apis/bot/v2/hook/xxxx 请求方式POST 请求体{text:当前在线 viewer_count 点赞 like_count}写入数据库如果公司有数据仓库可以把直播数据实时写入数据库方便后续做历史数据分析。用Python指令执行SQL插入importpymysql connpymysql.connect(hostxxx,userxxx,passwordxxx,dblive_data)cursorconn.cursor()sqlINSERT INTO live_metrics (live_id, timestamp, viewer_count) VALUES (%s, %s, %s)cursor.execute(sql,(live_id,timestamp,viewer_count))conn.commit()十一、工程化规范长时间运行的流程最容易出问题规范尤其重要。日志规范每采集一个数据点写一条日志记录到本地文件。日志格式用统一的JSON格式方便后续分析。importjson log_entry{time:current_time,action:collect_data,result:success,data:data_point}withopen(C:\\live_monitor.log,a)asf:f.write(json.dumps(log_entry,ensure_asciiFalse)\n)错误恢复网络抖动、页面超时、OCR失败这些都是常见问题。每个采集步骤都要加异常捕获单个数据点采集失败不影响整体流程。try:viewer_countget_viewer_count()exceptExceptionase:log_error(f获取观看人数失败:{str(e)})viewer_countprev_viewer_count# 用上一个值填充配置外置直播ID、采集频率、OCR配置这些参数不要写死在流程里放在一个Excel配置文件里流程启动时读取。这样改配置不用改流程。十二、速查表与报错处理常见报错一观看人数一直采集到0。原因元素定位失效或者数据还在加载中。解决加等待元素出现指令等待时间设5秒。如果还不行检查XPath是否随页面更新而失效。常见报错二OCR识别结果乱码或错误。原因截图区域不对或者OCR引擎配置有问题。解决先手动截图看看区域是否正确再检查OCR引擎的密钥是否过期。常见报错三流程运行一段时间后自动停止。原因淘宝直播页面有自动登出机制大约4小时不操作会自动退出登录。解决在流程里加一个每小时刷新一次页面的操作保持登录状态。速查表数据项采集方式更新频率观看人数获取元素文本每30秒点赞数获取元素文本每30秒评论数获取元素文本每30秒商品点击率截图OCR每5分钟商品销售数据API接口每5分钟总结淘宝直播数据监控的核心价值在于实时性和完整性。人工记录最多每5分钟记一次而且容易漏用影刀RPA可以做到每30秒一次全程无遗漏。我帮一个美妆品牌搭了这套方案之后他们发现直播的观看人数峰值出现在开播后第47分钟左右这个规律之前靠人工记录完全发现不了。后来他们把重要促销环节都安排在45分钟左右转化率提升了大概18%。数据不会说谎但前提是你得把数据采到手。更多影刀RPA直播电商实战内容可以访问我的网站获取更多案例home.linyan.cloud#影刀RPA #RPA教程 #淘宝直播 #直播数据 #电商运营作者林焱