影刀RPA新手教程数据脱敏进阶——手机号、身份证与订单号处理采集回来的订单表里明晃晃躺着几百个手机号和身份证号客户要求交付前必须脱敏手工改了一个小时才发现有几千行——很多做数据采集的人第一次被敏感信息卡住就是在这个时刻。数据脱敏不是删掉那么简单删了数据就没法分析正确做法是保留部分特征、遮住关键段。我用影刀RPA做电商数据采集两年多非技术出身踩过正则的坑、也踩过脱敏脱得太狠导致数据对不上的坑。这篇把手机号、身份证、订单号三类最常见的脱敏场景一次讲透新手照做就能落地。先说一个好消息影刀RPA的【文本替换】指令内置了脱敏选项不用你写正则就能处理手机号和身份证这是很多教程没提的隐藏功能。脱敏前的准备认识影刀RPA的文本处理体系还没装影刀RPA的话去官网下载社区版安装完记得把浏览器插件也装上Chrome需要允许读取和更改网站数据否则网页采集环节会捕获不到元素。打开编辑器左侧是指令库在搜索框输入文本就能看到文本处理全家桶【文本替换】、【从文本中提取内容】、【文本分割成列表】、【截取一段文本】——脱敏主要跟这四个指令打交道。文本在影刀RPA里是字符串类型支持索引取值和拼接。比如手机号变量phonephone[0:3]取前三位phone[-4:]取后四位这两个操作就是脱敏的底层逻辑保留头尾遮住中间。文本替换指令内置的脱敏快捷方式【文本替换】指令的替换方式下拉框里除了替换内容还内置了这几个选项替换内容、替换数字、替换手机号、替换Email、替换身份证以及自定义正则替换。处理手机号脱敏的操作步骤拖入【文本替换】指令内容源选择装着原始文本的变量替换方式下拉选择替换手机号被替换内容填入****或你想要的掩码样式勾选替换所有匹配内容不勾的话只换第一处这是新手最容易漏的参数身份证同理选替换身份证即可。但这里有个我踩过的坑内置替换是整串替换而不是部分遮掩——它会把手机号整个替换成掩码如果你需要保留前3后4比如138****5678方便后续对账就得走自定义正则替换这条路。自定义正则替换保留头尾的经典写法【文本替换】的自定义正则替换选项配合捕获分组能实现保留部分原文的脱敏。三个最常用的表达式我直接给出# 输入text 为含敏感信息的原始字符串# 输出三类信息分别脱敏后的结果importre text收件人张三 手机13812345678 证件110101199001011234 订单2024051512345678# 手机号保留前3位和后4位中间4位打码正则用两个分组夹住中间phone_donere.sub(r(\d{3})\d{4}(\d{4}),r\1****\2,text)# 身份证保留前6位和后4位中间8位出生日期段打码id_donere.sub(r(\d{6})\d{8}(\d{3}[0-9Xx]),r\1********\2,text)# 订单号16位纯数字保留前4后4order_donere.sub(r\d{16},lambdam:m.group()[:4]********m.group()[-4:],text)print(phone_done)print(id_done)print(order_done)如果不习惯用Python指令影刀RPA的元素编辑和【从文本中提取内容】指令里也能直接填正则。正则里的分组规则记一条就够括号里的内容是要保留的影刀指令默认返回第一个捕获分组这是官方文档里明确写的规则利用好它脱敏和提取就是一枚硬币的两面。从文本中提取内容先定位订单号再处理订单号麻烦在格式不统一有纯数字的、字母加数字的、还可能混着平台前缀。我的做法是先用【从文本中提取内容】把订单号抽出来单独存变量再做遮掩。以订单号123456789这类文本为例正则写成订单号[:]加一个括号包住\d加号括号分组直接拿到冒号后面的数字串。常见三类订单号的正则参考场景正则表达式说明纯数字订单号\d{10,20}长度10到20位的连续数字字母数字混合[A-Z]{2,4}\d{12,18}前缀2到4个字母加数字主体带固定前缀订单[号:]\s*(\w)按中文提示词定位后提取提取出来之后是字符串变量用切片拼接就能完成脱敏order[:4] “********” order[-4:]。新手容易在这里犯一个类型错误——把提取结果当数字处理一旦订单号有前导零就丢位订单号、手机号永远是字符串别转数字。变量与数据类型脱敏任务的隐性基础脱敏大量依赖字符串操作顺便把影刀RPA里最常用的几类变量理一遍后面所有环节都靠它们组织数据。字符串索引、切片、拼接、替换脱敏的核心操作全在这一层列表【文本分割成列表】把一整段文本按分隔符拆开逐行处理就变成遍历列表字典脱敏规则配置哪些字段要脱、掩码样式放进字典一处定义全局引用JSON接口返回的订单数据先转JSON再按字段取值比文本抠取稳得多字典在脱敏里还有个妙用做假名映射表。把真实收件人姓名按顺序映射成客户A、客户B原始对应关系存字典留底交付表里只有假名——比单纯打码更好用分析时还能保持唯一性。循环与条件判断整表批量脱敏的标准流程单条会了整表就是套一层循环。标准流程五步【打开/新建Excel】指令打开订单表【读取Excel内容】读出全部数据存成二维列表变量【循环Excel内容】或ForEach列表循环逐行遍历循环体内对目标列做【文本替换】或Python正则脱敏结果存回该行循环外用【写入内容至Excel工作表】整体写回新表另存为_脱敏版文件脱敏结果千万别写回原文件——我第一次做就把原表覆盖了原始数据没了重新采了一遍。正确姿势永远是原表只读、脱敏结果写新文件这也是容灾思维在脱敏场景的体现。If条件判断用来跳过空单元格用【IF 多条件】先判断该单元格不为空值再替换否则空值参与正则替换会触发类型报错官方文档里对应无法做包含判断那条None值无法做包含判断需要先加非空判断。网页自动化场景采集时就地脱敏如果数据敏感性高更好的策略是采集阶段就脱敏敏感信息根本不落本地明文文件。这个思路要靠网页自动化基本功支撑。元素捕获时用循环相似元素(web)遍历商品或订单卡片卡在详情页字段上时XPath写法决定提取质量# 场景捕获订单列表里的收件人手机号单元格 //table[idorderList]//td[contains(class,phone)] # 场景CSS选择器写法同上效果更短 #orderList td.phone # 场景手机号文本混在电话138xxxx里用正则从提取文本中二次过滤 \d{11}等待策略上用【等待元素出现(web)】代替固定等待遇到弹窗按判断存在→关闭→继续五步标准流程处理翻页判断下一页按钮是否带disabled样式属性这是应对不确定总页数最可靠的写法。懒加载页面滚动加载时用列表index配合去重防止同一元素被采集两次。鼠标键盘图像与进阶技能特殊场景的两把备用刀有些老系统的收货地址在图片或PDF里元素定位和页面文本都拿不到这时用【屏幕截图】加OCR文字识别影刀RPA内置OCR也可接百度、腾讯OCR接口把文字读出来再脱敏。OCR结果噪点多脱敏前先做个文本清洗去掉多余空格和换行用【文本分割成列表】按行处理。进阶场景下Python协同是脱敏的最佳拍档re模块正则、pandas整列处理都比逐行循环快。几百行数据循环无感几万行数据就上pandas——df[‘手机号’].astype(str).str.replace(r’(\d{3})\d{4}(\d{4})‘, r’\1****\2’, regexTrue)一行完成整列脱敏。另外影刀RPA的魔法指令也能对话式生成这类批处理代码生成的代码自己检查一遍正则再用。平台实战与系统联动脱敏放进完整业务流拿我最常用的小红书笔记采集举例采集评论列表时评论里常有人留微信号手机号全量入库前先过一遍自定义正则替换把11位数字、微信号格式统一打码再做情感分析或统计交付给运营的数据就是安全的。淘宝、拼多多订单采集同理手机号和收件人姓名是重灾区。脱敏完成后的通知和交付链路用【飞书群通知】给团队发一条今日脱敏报表已生成文件路径附上正式交付走【发送邮件】加附件。定时任务每晚跑采集→脱敏→交付一条龙第二天上班数据已经在邮箱里了。工程化规范把脱敏封装成通用子流程脱敏规则会随客户要求变所以必须独立成子流程命名建议Sub040_数据脱敏输入参数是二维列表和脱敏列号输出参数是脱敏后的二维列表。规则变更只改子流程主流程不动。版本上提醒一句社区版每天有30分钟运行时长限制大批量脱敏任务注意控制单次数据量或者拆分到多天执行创业版无时长限制任务重的话值得升级。易错速查脱敏高频翻车点症状原因解决只替换了第一条敏感信息没勾选替换所有匹配内容勾选全部替换或循环逐条处理正则替换后整串变成掩码用了内置替换而非分组保留自定义正则用捕获分组保留头尾空单元格报TypeErrorNone值参与判断或替换IF多条件先加不为空值判断订单号前导零丢失被转成了数字类型订单号全程按字符串处理脱敏后数据对不上账掩码位数不定长无法关联掩码位数固定或用假名字典做映射身份证尾号X没被匹配到正则只写了\d结尾分组写成[0-9Xx]延伸阅读与学习资源正则表达式这一块官方文档里有一页专门的正则表达式条目把常用操作符和经典表达式列成了表配合【从文本中提取内容】指令的文档一起看一小时能上手。我的代码仓库 home.linyan.cloud 里有完整的三类敏感信息脱敏流程源码含正则配置和批量处理示例可以直接参考改造。脱敏做顺了以后你会发现它就是字符串处理的一个应用题——头尾保留、中间打码、原表只读、结果另存这十六个字记住剩下的交给正则。#影刀RPA #RPA自动化 #数据脱敏 #正则表达式 #数据处理作者林焱