尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

影刀RPA实操指南:登录态保持实战——Cookie备份与失效自动重登

影刀RPA实操指南:登录态保持实战——Cookie备份与失效自动重登 影刀RPA实操指南登录态保持实战——Cookie备份与失效自动重登做数据采集的流程最怕的不是报错而是跑到半夜发现页面早就被踢回了登录页后面抓到的全是空数据。用影刀RPA做网页自动化登录态失效是出现频率最高的翻车点没有之一。我实操影刀RPA两年多踩过最狠的一次是电商采集流程连跑三天没检查登录态攒了一堆请先登录的页面。后来我把登录态这套东西彻底拆开研究了一遍Cookie怎么备份、怎么判断失效、失效了怎么自动重登。这篇就把完整的方案写下来用的是影刀RPA自带的Cookie指令不需要写复杂代码非技术出身也能照着做。核心解决一个痛点流程无人值守运行时登录态没了也能自己恢复。浏览器环境先搭对插件与影刀浏览器的选择Cookie指令依赖浏览器环境先把地基打牢。影刀RPA支持的浏览器类型不少选型直接影响登录态方案能不能落地。浏览器类型fx变量值适合场景影刀浏览器cef无需装插件环境独立静默运行Google Chromechrome日常在用的浏览器登录态现成Microsoft EdgeedgeWindows自带配置类似ChromeFirefoxfirefox需单独安装xpi插件我的做法是日常账号在Chrome里登一次采集流程直接连Chrome的登录态备份Cookie用临时任务用影刀浏览器它开箱即用、不用装插件环境还和日常浏览器完全隔离。装插件的位置在客户端右上角「我的」→「工具」→「自动化插件」按浏览器类型点对应组件安装。插件没装好的各种坑我在这篇里不展开优先把Cookie逻辑讲透。Cookie指令四件套获取、筛选、设置、移除影刀RPA处理登录态的核心是四条指令都在指令面板的网页自动化分类下搜索Cookie就能找到。第一条获取筛选所有Cookie。这是备份登录态的主力。url指定方式选根据网页对象会自动用当前网页的url筛选也可以手动输入url并选择浏览器类型。筛选条件里cookie name、cookie domain、cookie path都可为空为空就是不限制。影刀5.16版本之后这条指令升级成了V2版本支持筛选带PartitionKey属性的Cookie而且取消了强制填写URL筛选条件。低版本编辑的流程升级后不受影响。保存下来的cookie列表里每一项包含domain、expirationDate、name、value、httpOnly等字段——expirationDate就是过期时间判断登录态能不能撑到明天全靠它。第二条获取指定Cookie信息。当你只需要某个关键cookie比如网站的session id时用这条。它有个规则如果指定url下存在多个相同name的cookie返回path最长的那个path长度相同返回创建时间较早的。第三条设置Cookie。把备份的cookie写回浏览器存在等效cookie则覆盖。参数里除了name和value还有三个勾选项容易忽略参数作用我的使用习惯cookie domain默认取url的domain部分主域名的cookie要手动填标记为HttpOnly是否标记HttpOnly备份里有就勾上别丢设置为会话Cookie默认勾选要持久化必须取消勾选这里踩过一个坑默认是会话Cookie浏览器一关就没了。做持久化备份回填时记得取消勾选否则回填的登录态撑不过一次浏览器重启。第四条移除指定Cookie。测试重登流程时用它清掉旧登录态模拟失效场景。有个备注要记住它移除的是当前网页对象中的cookie name如果当前网页对象的cookie里不包含这个name移除不生效——我第一次测试时移了个不存在的name还以为指令坏了。登录态检测用元素定位判断还登没登着备份了Cookie不代表万事大吉平台的登录态本身会过期。所以流程每次启动要先做一次体检判断当前还是不是登录状态。检测靠的是判断元素是否存在指令配合精准的元素定位。影刀RPA的定位体系是四合一元素捕获、XPath、CSS选择器、正则表达式。日常我用得最多的是XPath和CSS并列备选场景推荐写法理由登录后头像/昵称XPath按文本匹配稳定不怕class混淆退出登录按钮CSS按属性选择写法短可读性好动态class的元素XPath用contains模糊匹配class带哈希时CSS写不准# 检测登录态查找页面上的退出按钮登录后才渲染 //a[contains(text(),退出)] # 备选方案CSS选择器定位用户头像容器 div.user-avatar img # 模糊兜底匹配任何含请登录字样的元素出现即代表已掉线 //*[contains(text(),请登录)]我的习惯是正向反向双检测退出按钮存在还登着请登录元素存在已掉线。两个一起判断比单点检测稳得多。变量与数据类型Cookie到底存成什么获取筛选所有Cookie保存出来的是一个列表列表里每一项是字典。理解这个结构后面所有操作才不迷糊。备份落地的格式我推荐JSON文件影刀RPA里把cookie列表转成JSON文本写入文件恢复时读文件、转回对象、逐条设置Cookie。三个环节对应的指令是对象转JSON文本、“读取文件”、“JSON反序列化”。# 用Python指令处理备份文件也可以输入是cookie列表变量输出是文件路径# 输入cookie_list来自获取筛选所有Cookie# 输出backup_pathJSON文件路径importjson,time# 按日期平台命名方便回溯哪天的备份还能用backup_pathfD:/cookie_backup/taobao_{time.strftime(%Y%m%d)}.json![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9ddbf60763dd47bd8cfaad20882c803a.png#pic_center)withopen(backup_path,w,encodingutf-8)asf:# 只保留回填必需的字段文件更小、回填更快slim[{k:c.get(k)forkin(name,value,domain,path,expirationDate,httpOnly,secure)}forcincookie_list]json.dump(slim,f,ensure_asciiFalse,indent2)print(backup_path)字典取值时记得用get而不是方括号有些cookie项缺expirationDate字段方括号直接取会报KeyError。这是我第一周做备份就交过的学费。流程控制失效自动重登的完整逻辑重登逻辑本质是三段式流程控制全部用影刀RPA的基础指令就能搭出来。打开网页指令打开目标站点等待页面加载完成超时建议30秒别用默认值硬扛慢加载判断元素是否存在指令检测退出按钮元素存在→直接进采集不存在→走重登分支重登分支先移除指定Cookie清掉残留再判断页面上是账密表单还是扫码入口分别处理重登分支外面必须包一层Try-Catch。Catch块里用输出日志指令把报错信息和时间写进日志文件Finally块放关闭多余弹窗的操作——弹窗不清后面的点击元素指令十有八九被挡。While条件循环可以再加一层保险重登后重新检测登录态元素没登成功就重试最多3次超过次数直接发通知停止。防死循环意识必须刻进流程里重试永远要有上限。网页自动化细节等待策略与登录后的第一跳登录成功后页面通常要跳转或刷新直接抓数据会扑空。影刀RPA有三种等待思路固定延时等待指定秒数、等待元素出现、等待网页加载完成。我的选型原则很简单能用等待元素就不用固定延时。比如登录后等退出按钮出现再继续页面慢一点也不会抓空。固定延时只用在登录点击后的过渡瞬间给3到5秒意思一下。还有个细节账密登录的输入框要用填写输入框(web)指令输入前先点击元素聚焦。有的站点输入框是iframe嵌的元素死活捕获不到时先检查是不是iframe影刀RPA里用切换iframe指令进去再操作。数据处理账号表与备份文件的管理账号密码别写死在流程里。我用Excel建一张账号表列名三列平台、账号、加密密码数据处理时用读取区域指令读进来按行遍历。Cookie备份文件按平台_日期命名每个平台保留最近3份旧的定期清理。文件内容保留策略账号表.xlsx平台、账号、密码永久本地加密存放cookie备份.json最近有效登录态每平台留3份运行日志.txt重登记录、报错每月归档一次密码字段建议至少做个简单变换再存Excel里明文放密码这事我劝你别干。鼠标键盘与图像扫码和滑块的兜底方案总有平台不肯让你纯用Cookie续命重登时弹出扫码或者滑块。这时候轮到鼠标键盘图像自动化上场。扫码登录的思路用屏幕截图指令截二维码区域通过企业微信或飞书把图发给人工人扫完流程继续。滑块验证用图像识别指令定位滑块位置配合模拟移动鼠标拖过去——成功率不算高属于兜底手段别把主流程押在它上面。鼠标操作有模拟模式和驱动模式之分验证场景建议用驱动模式绕过部分网页对合成事件的检测。虚拟键盘驱动要在设置中心里装好装完记得重启影刀RPA客户端才生效。进阶技能HTTP请求里怎么带上Cookie页面采集慢的时候很多人想换HTTP请求直接拿数据。影刀RPA的HTTP请求指令支持协议头配置把备份cookie里的关键值拼进请求头的Cookie字段就能带着登录态直接请求接口。响应结果的status_code为200表示成功content如果接口返回的是JSON可以接JSON相关指令解析。这条路速度快但需要抓包看接口参数对非技术出身的人有个学习门槛页面方案跑通之后再来玩这个不迟。平台实战淘宝和TEMU的登录态差异淘宝的登录态生命周期长但风控敏感Cookie备份回填偶尔会触发安全校验所以淘宝侧我的策略是少登、勤检、掉线通知人工。TEMU商家后台的登录态相对短适合全自动重登方案账密备份Cookie双保险基本够用。拼多多商家后台介于两者之间掉线后重新用账密登大概率直接过。三个平台共用同一套重登子流程只是检测元素不同——这就是工程化的价值换平台只换体检指标。系统联动失效告警与定时保活重登失败重试3次还不上线流程要主动喊人。影刀RPA里接飞书机器人通知最省事Webhook一填失败时发一条XX平台登录态恢复失败请人工处理。保活思路是拿定时任务指令每天固定时间跑一次打开网站→检测登录态→失效则重登的迷你流程让登录态始终是热的正式采集任务夜里跑就不用赌运气。工程化规范把重登封装成子流程最后一步把检测→备份→重登→告警整段封装成子流程输入参数是平台名和网址输出参数是是否在线。主流程里一行调用换了平台只改子流程内部的检测元素。规范项做法子流程命名010_登录态保活_平台名参数输入平台、URL输出在线状态| 注释 | 重登分支每段写一行说明 || 版本 | 改动后另存副本不覆盖旧版 |我自己是每个流程都按编号_功能_对象命名隔半年回来看也能秒懂。易错速查表报错/现象原因解决设置Cookie后掉线依旧勾了设置为会话Cookie取消勾选改为持久化备份字段缺expirationDate部分cookie本身无过期时间字典用get取值缺省处理移除指定Cookie不生效当前网页对象无该name先打开对应站点再移除重登后立刻采集抓到空数据登录跳转未完成等待退出元素出现再继续判断元素存在误判元素在iframe里先切换iframe再判断延伸阅读这套登录态方案的完整流程源码我放在代码仓库 home.linyan.cloud里面有Cookie备份和自动重登的可直接运行版本可以参考着改造成自己的平台。配合影刀官方的指令文档对照看效率最高。#影刀RPA #RPA自动化 #Cookie管理 #登录态保持 #网页自动化 #数据采集作者林焱
返回列表