ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

影刀RPA新手教程:微信自动化实战——企业微信消息发送与群通知

影刀RPA新手教程:微信自动化实战——企业微信消息发送与群通知 影刀RPA新手教程微信自动化实战——企业微信消息发送与群通知企业微信消息自动化是落地最快的场景之一。我每天把价格监控结果丢进群里异常时直接负责人不用人守着流程跑。这篇文章以一个完整案例串起来淘宝商品价格采集 → 写入Excel → 成功时发群通知 → 异常时运营主管。全文围绕企业微信群机器人顺手把飞书机器人、钉钉机器人的差异也对比清楚。一、认识影刀与安装先把枪擦亮影刀社区版直接去官网下载安装包按提示下一步就行。创业版和企业版才能用控制台调度但社区版写本地流程完全够用。浏览器插件必须装。Chrome用户进扩展程序 → 打开开发者模式 → 拖入影刀插件。我第一次做企业微信通知时插件没装好捕获不到网页元素排查了一下午才发现是这个问题。装完打开影刀界面就三块左侧指令库、中间画布、右侧属性面板。拖拽式开发不需要写代码但懂点Python能走得更远。二、元素定位四合一采集淘宝价格的前置技能采集淘宝商品价格核心靠元素定位。影刀提供四种定位方式元素捕获、XPath、CSS选择器、正则表达式。我一般用元素捕获占70%XPath占25%正则兜底5%。淘宝商品标题、价格、销量的真实XPath大概长这样//div[contains(class,item)]//a[contains(class,title)] //div[contains(class,price)]//span[contains(class,price-int)] //div[contains(class,deal-cnt)]CSS选择器写法更短适合结构稳定的页面div.item a.title div.price span.price-int div.deal-cnt选型建议页面结构简单用CSS选择器有动态id或重复结构用XPath文本中提取手机号、订单号用正则。淘宝商品列表用XPath最稳因为class名经常微调。三、变量与数据类型把价格装进变量采集到的商品名是字符串价格是字符串但可能要转数字销量是带人付款的文本先清洗再存。# 字符串拼接生成群通知正文msg_textf今日采集完成共{count}条平均价格{avg_price}元# 列表存全部商品product_list[iPhone 15,华为 Mate 60,小米 14]# 字典存单条商品product{name:title,price:price,sales:sales}# JSON转文本后塞HTTP请求体importjson payloadjson.dumps({msgtype:text,text:{content:msg_text}})影刀变量面板里直接拖【设置变量】指令就行。字符串注意空值字典注意键不存在会报错用.get()或者提前判断。四、流程控制成功发通知异常人整个流程用Try-Catch包起来。外层Try放采集写入ExcelCatch里发异常通知并负责人。try:采集淘宝价格()写入Excel()发送成功通知()exceptExceptionase:发送异常通知(mention_list[ZhangSan])写入错误日志(str(e))If判断放在Catch内部如果异常次数小于3次就重试超过3次才发告警。这里用While循环配合计数器最清晰。五、网页自动化采集淘宝价格的标准动作打开网页用【打开网页】指令建议勾选加载完再执行。淘宝反爬强第一次打开可能弹登录窗用【等待元素】指令等10秒等不到就发告警。翻页用XPath判断下一页按钮是否disabled//a[contains(class,next)]/class如果class包含disabled就停循环否则点击下一页。不确定总页数时这是最稳的做法比硬循环100次更省时间。懒加载要滚动到底部再采集。用【模拟鼠标滚轮】或者JS滚动window.scrollTo(0,document.body.scrollHeight);采集完一轮用列表去重避免同一商品重复写入Excel。六、数据处理Excel写入与清洗价格采集回来是1,299.00这种字符串要清洗成数字。用正则去掉和逗号再转成floatimportre pricefloat(re.sub(r[,],,price_str))Excel写入用【启动Excel】→【写入区域】把列表数据一次性写进去比单格循环快得多。如果要追加先读最后一行再写入下一行。销量1.2万人付款要统一单位if万insales_str:salesfloat(sales_str.replace(万,).replace(人付款,))*10000else:salesfloat(sales_str.replace(人付款,))七、鼠标键盘图像自动化网页搞不定时用图像淘宝登录有时弹滑动验证码XPath定位不到滑块。这时用图像识别先截一张滑块小图再用【图像识别】→【点击】找到位置。图像识别在影刀里属于兜底方案。能元素定位就别用图像因为分辨率一变位置就偏。桌面ERP软件才主要用图像网页里90%的元素定位足够。八、进阶技能HTTP请求直接操控Webhook企业微信群通知指令虽然能用但不够灵活。想要指定人和发Markdown卡片我直接用HTTP请求。企业微信群机器人配置路径企业微信群聊 → 右键群设置 → 添加群机器人 → 复制Webhook地址。地址格式https://qyapi.weixin.qq.com/cgi-bin/webhook/send?keyxxxxxxxxxxxxxxxx保存这个key到变量后面所有请求都用它。纯文本消息POST格式importrequestsimportjson urlhttps://qyapi.weixin.qq.com/cgi-bin/webhook/send?keyyour_keyheaders{Content-Type:application/json}payload{msgtype:text,text:{content:价格监控完成共采集 127 条,mentioned_list:[ZhangSan]}}resrequests.post(url,headersheaders,datajson.dumps(payload,ensure_asciiFalse))指定人员用userid不是昵称。在企业微信管理后台 → 通讯录 → 成员详情里能看到。我第一次写的时候填了名字结果不出去排查半天才发现要填userid。Markdown消息适合发格式化日报payload{msgtype:markdown,markdown:{content:**今日价格监控日报** 采集商品数127 均价¥1,299 异常商品3 }}文本和Markdown怎么选一句话纯文本最常用Markdown适合日报/告警卡片消息适合带链接的推送。九、平台实战企业微信、飞书、钉钉三选一企业微信群通知指令最省事但只能发文本/文件/图片/Markdown人要传userid。飞书机器人用ou_xxx的user_id格式是at user_idou_xxx名字/at富文本和消息卡片更强大。钉钉机器人需要加签消息格式只支持文本和Markdown人用手机号。配置复杂度钉钉 飞书 企业微信。企业微信拿到Webhook地址就能发最友好。我实际项目里通知通道按客户来客户用企业微信就用企微用飞书就用飞书。影刀里分别拖对应的群通知指令或者统一用HTTP请求自己拼。十、系统联动定时任务与多平台通知流程写好之后用影刀客户端触发器或控制台定时任务。我每天早9点自动跑价格监控跑完发企微群失败时同时发企业微信和邮件。邮件通知用【发送邮件】指令填SMTP服务器、授权码。授权码不是邮箱密码是QQ邮箱或163邮箱里单独生成的。如果想多平台同时通知封装一个发送通知子流程接收消息内容、人列表、平台类型三个参数。主流程只调用一次子流程内部判断走哪个平台。十一、工程化与规范把流程做稳webhook地址不要硬编码在流程里放配置文件或变量里。上线前把流程拆成三个子流程采集、处理、通知。每个子流程有明确的输入输出。命名规范变量用小写加下划线如webhook_url子流程用动词开头如send_wecom_notification。调试时多打断点异常时先写日志再发通知避免通知失败把异常吞了。十二、速查表常见报错与解决企业微信机器人返回错误码40008文本长度超过2048字节分条发或换Markdown。40001key无效检查Webhook地址是否复制完整。43004需要接收人人时userid填错。发送成功但群里看不到检查机器人是否被禁言或群设置了仅管理员可发言。中文乱码HTTP请求加ensure_asciiFalse。飞书机器人常见9499消息被频控加1秒延时。app_id/app_secret错误图片类型才需要文本类型不需要。钉钉机器人常见310000签名错误检查密钥和加签算法。关键词不匹配安全设置里必须包含关键词。再补一条真实踩坑企业微信机器人群通知如果群名改了Webhook地址不变还能继续用。但机器人被移出群聊后地址不会失效只是发不进去错误码不明显容易误判流程正常。home.linyan.cloud 是影刀RPA学习主页里面整理了更多实战案例和配置细节。#影刀RPA #RPA教程 #企业微信自动化 #群机器人 #消息通知作者林焱
返回列表