影刀RPA新手教程:Python处理文本完全指南——用Python做影刀指令做不到的文本操作
你好,我是林焱。
影刀自带的字符串处理指令已经能完成很多操作,比如截取、替换、拼接。
但遇到一些复杂情况,比如从一段文字里批量提取手机号,影刀指令就比较吃力。
这时候用Python的正则表达式,几行代码就能搞定。
一、为什么需要Python处理文本
假设你有一段文字:
联系人:张先生,电话13800138000;李女士,电话13900139000;王先生,电话13700137000。你要把里面的三个手机号都提取出来,存到一个列表里。
用影刀指令的话,需要先找到"电话"两个字的位置,再截取11位数字。
如果有10个联系人,你要重复写10次类似逻辑。
用Python正则表达式,一行代码就能提取所有手机号。
二、案例主线:从一段文字中提取所有手机号
我们今天用这个案例贯穿全文。
输入是一段包含多个手机号的文字。
输出是一个列表:[“13800138000”, “13900139000”, “13700137000”]。
然后把列表写入Excel或打印到日志。
三、安装影刀和新建流程
打开影刀,新建流程"Python文本处理练习"。
拖入"执行Python代码"指令。
四、元素定位:从网页或文件中获取文本
原始文本可能来自网页元素。
用"获取元素文本"指令,XPath示例:
//div[@class="contact-list"]也可能来自Excel文件,用"读取Excel单元格"指令读取某个单元格。
读取到的文本保存到变量"原始文本"。
五、变量和数据类型:输入输出怎么传
拼多多店群自动化报活动上架!
在"执行Python代码"指令的输入参数里:
- text: {{原始文本}}
Python代码里用text接收这段文字。
处理完成后,把结果列表保存到result变量:
result=phones影刀会收到一个列表变量。
六、正则表达式提取手机号
在Python代码里写入:
importre# 定义手机号的正则表达式pattern=r"1[3-9]\d{9}"# 从文本中查找所有匹配项phones=re.findall(pattern,text)# 返回给影刀result=phones正则表达式的含义:
1:手机号必须以1开头。
[3-9]:第二位必须是3到9之间的数字。
\d{9}:后面再跟9位任意数字。
加起来正好是11位手机号。
七、流程控制:判断提取结果是否为空
如果文本里没有手机号,phones会是一个空列表。
影刀主流程里用If判断:
{{手机号列表}} length > 0如果有数据,写入Excel。
如果没有,记录日志:“未找到手机号”。
八、网页自动化:批量处理多个页面
如果每个联系人信息都在不同页面上,可以用循环。
流程:
- 打开第一个页面。
- 读取页面文本。
- 调用Python提取手机号。
- 保存到总列表。
- 翻页,重复以上步骤。
翻页可以用"点击元素"点击下一页按钮。
九、数据处理:把列表写入Excel
手机号列表是[“13800138000”, “13900139000”, “13700137000”]。
用"ForEach列表循环"逐个写入Excel的不同行。
或者直接用"写入Excel区域"一次性写入一列。
十、鼠标键盘与图像:文本来自图片时怎么办
如果文本在图片里,先用OCR识别。
影刀有"OCR识别"指令,可以识别图片中的文字。
识别结果通常是字符串,然后传给Python处理。
十一、进阶技能:提取邮箱和金额
正则表达式可以提取各种规则内容。
提取邮箱:
emails=re.findall(r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}")提取金额:
moneys=re.findall(r"\d+\.\d{2}")把pattern改一改,就能提取不同的内容。
十二、平台实战:批量处理客户留言
假设每天有很多客户留言,要从中提取手机号并分配给客服。
用影刀定时任务每天跑一次。
Python提取手机号后,写入Excel,按地区分组。
发布到云端,每天早上自动执行。
十三、系统联动:把结果发送给企业微信
提取到手机号后,给企业微信机器人发送一条消息:
今日待跟进客户手机号:{{手机号列表}}这样客服一上班就能看到今天的任务列表。
十四、工程化规范:正则表达式要注释
正则表达式难读,一定要加注释。
# 匹配11位手机号,以1开头,第二位为3-9pattern=r"1[3-9]\d{9}"复杂的正则建议拆成多行,并用示例说明匹配结果。
TEMU店群矩阵自动化运营核价报活动
十五、速查表与报错
正则匹配不到:检查pattern是否写错,注意反斜杠和量词。
匹配结果不对:可能是pattern太宽泛,匹配到了不该匹配的内容。
返回类型错误:result不要返回正则对象,要返回字符串或列表。
十六、我踩过的坑:忘了加import re
我第一次写正则时,直接写:
phones=re.findall(pattern,text)结果报错:re is not defined。
原来Python使用正则前必须先导入:
importre这个导入语句一定要放在代码块最前面。
十七、完整文本处理流程总结
第一步:获取原始文本,来源可以是网页、Excel、文件或OCR。
第二步:把文本作为参数传给"执行Python代码"。
第三步:在Python里用正则表达式提取目标内容。
第四步:返回列表或字典给影刀。
第五步:影刀把结果写入Excel或发送通知。
十八、文本处理是RPA的高频需求
做RPA时,80%的数据都不是结构化的。
网页上的文字、合同里的条款、聊天记录里的信息,都需要清洗和提取。
Python正则表达式是这个环节最实用的工具之一。
十九、今天记住三个正则符号
\d:匹配任意数字。
{n}:匹配前面的内容n次。
[]:匹配括号内的任意一个字符。
组合起来:1[3-9]\d{9},就是手机号的正则表达式。
我通常会把常用的正则表达式整理到 home.linyan.cloud,比如手机号、邮箱、身份证号、金额、日期。
写新流程时直接复制,改改参数就能用,避免每次都重新写。
作者:林焱
#影刀RPA #RPA教程 #Python文本处理 #正则表达式 #手机号提取 #零基础学Python #影刀新手