十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

wxauto实战:3个高频场景,10分钟搭出你的微信自动回复机器人

wxauto实战:3个高频场景,10分钟搭出你的微信自动回复机器人 wxauto实战3个高频场景10分钟搭出你的微信自动回复机器人【免费下载链接】wxautoWindows版本微信客户端非网页版自动化可实现简单的发送、接收微信消息简单微信机器人项目地址: https://gitcode.com/gh_mirrors/wx/wxauto你有没有遇到过同一个问题每天要回复几十遍重要消息总在手机和电脑之间来回搬运还要手动转发到各个群如果你也困在微信里的复制粘贴循环里这篇文章就是为你准备的。wxauto 是一款基于 Windows 微信客户端非网页版UI 自动化的 Python 库支持自动收发消息、关键词回复、消息转发与聊天记录归档很适合客服、运营和技术爱好者低成本搭建自己的微信机器人。一句话认识 wxautowxauto 的原理可以理解为一个「会自己点鼠标的助手」。它通过 UI 自动化技术读取微信窗口里的聊天元素再模拟人类的点击、输入、回车操作从而完成发消息、收消息、转消息等动作。它不需要登录网页版也不依赖任何逆向接口操作的就是你眼前这个真实客户端。能力说明适用场景上手难度产出消息收发向指定好友/群发送文本、文件读取聊天记录定时提醒、消息下发低一段可复用脚本监听回复监听指定聊天按关键词自动回复客服问答、群管机器人中24小时值守机器人消息转发单条/合并转发给好友或群信息同步、工作流分发中自动转发工具素材归档自动保存图片、文件、语音转写聊天备份、数据收集中本地文件/表格快速上手3分钟跑通第一个脚本环境要求 操作系统Windows 10 / 11 / Server 2016微信版本3.9.XPC 客户端需保持登录且窗口开启Python3.9安装pip install wxauto如果想体验最新源码也可以从仓库拉取后以可编辑模式安装git clone https://gitcode.com/gh_mirrors/wx/wxauto cd wxauto pip install -e .最小可运行示例from wxauto import WeChat import time # 1. 初始化微信实例会自动找到已登录的微信主窗口 wx WeChat() # 2. 向「文件传输助手」发送一条测试消息 wx.SendMsg(wxauto 环境测试 ✅, who文件传输助手) # 3. 读取当前聊天窗口的历史消息 msgs wx.GetAllMessage() for msg in msgs[-5:]: print(f[{msg.type}] {msg.sender}: {msg.content})运行后控制台会打印出类似下面的结果初始化成功获取到已登录窗口你的微信昵称 [time] 2026-08-17 12:30:11 [friend] 文件传输助手: 你好 [self] 你: wxauto 环境测试 ✅到这里你已经在用代码「操作」微信了。后面三个实战场景都是在它基础上叠加业务逻辑。场景实战一关键词自动回复机器人背景痛点客服/社群运营最耗时的不是解决问题而是反复回答「地址在哪」「几点上班」「怎么发货」这类高频问题。核心代码用GetAllNewMessage轮询新消息匹配关键词后通过msg.quote()引用回复并做 60 秒去重。from wxauto import WeChat import time wx WeChat() # 预设问答库关键词 - 标准回答 FAQ { 发货时间: 下单后24小时内发货偏远地区48小时, 公司地址: 北京市朝阳区XX路XX号, 人工: 人工客服在线时间9:00-18:00, 优惠: 新用户可领取满减券详情见商品页, } last_reply_time {} # 记录上次回复时间避免重复回复 while True: try: # 获取所有有新消息的会话{聊天名: [消息列表]} new_msgs wx.GetAllNewMessage() for chat_name, msg_list in new_msgs.items(): for msg in msg_list: # 只处理好友发来的消息跳过系统/时间/自己发的 if msg.type ! friend: continue # 60 秒内同一会话不重复处理 now time.time() if now - last_reply_time.get(chat_name, 0) 60: continue for keyword, answer in FAQ.items(): if keyword in msg.content: # 引用该条消息并回复语境更自然 msg.quote(answer) print(f已回复 {chat_name}: {answer}) last_reply_time[chat_name] now break time.sleep(2) # 每 2 秒轮询一次 except Exception as e: print(f运行异常{e}) time.sleep(5)运行效果当客户在聊天里提到「发货时间」机器人会自动引用这条消息并给出标准答案全程无需人工介入。关键点拆解msg.type有friend/self/sys/time/recall五种判断friend才能只响应对方消息避免自己触发自己。msg.quote()是引用回复比直接发一条更符合客服语境源码里对应的还有forward()单条转发能力。去重用的是「时间戳 会话名」简单可靠更严谨的可以记录每条消息的msg.idUI 元素 ID切换界面后可能变化。场景实战二群消息自动汇总转发背景痛点项目群里经常冒出需要同步给上级或协作方的消息一条条复制转发既慢又容易漏。核心代码监听多个指定群按关键词触发把命中消息通过msg.forward()转发到目标群并附上说明文字。from wxauto import WeChat import time wx WeChat() # 转发规则来源会话 - 目标会话 FORWARD_RULES { 项目进度群: 领导汇报群, 技术支持群: 技术部工作群, 供应商沟通: 采购部群, } # 命中这些词才转发控制噪音 TRIGGER_KEYWORDS [紧急, 合同, 付款, deadline, 风险] def try_forward(chat_name, msg): 命中规则或关键词时转发 if msg.type ! friend: return hit False if chat_name in FORWARD_RULES: hit True target FORWARD_RULES[chat_name] elif any(k.lower() in msg.content.lower() for k in TRIGGER_KEYWORDS): hit True target 重要消息汇总群 if hit: # 转发并附带说明让接收方知道消息来源 msg.forward(target) print(f已从 {chat_name} 转发到 {target}: {msg.content[:30]}...) # 先添加要监听的会话微信会为它们分别建立独立子窗口 for chat in FORWARD_RULES: wx.AddListenChat(whochat) while True: # 获取所有监听会话的新消息 msgs wx.GetListenMessage() for chat, msg_list in msgs.items(): for msg in msg_list: try_forward(chat.who, msg) time.sleep(3)运行效果只要「项目进度群」里出现包含「风险」的消息它会被自动转发到「领导汇报群」接收方还能看到消息原文与来源。关键点拆解AddListenChat(who...)会把对应聊天窗口独立出来监听这样新消息到来时不用反复切换主窗口性能更好。GetListenMessage()返回的是{聊天对象: [消息列表]}结构chat.who是会话名。msg.forward(target)走的是微信原生转发流程接收方能收到带原发送人头像和昵称的卡片可读性远好于复制粘贴。场景实战三聊天记录自动归档 素材下载背景痛点需要定期备份聊天记录、收集客户发的图片/合同文件手动另存为费时费力还容易漏。核心代码利用AddListenChat的自动保存参数把图片、文件、语音转写直接落盘同时把文本记录写入 CSV 归档。from wxauto import WeChat import csv import time from pathlib import Path wx WeChat() SAVE_DIR Path(./chat_archive) SAVE_DIR.mkdir(exist_okTrue) # 监听「文件传输助手」与「客户A」并自动保存图片/文件/语音转文字 wx.AddListenChat(who客户A, savepicTrue, savefileTrue, savevoiceTrue) # 打开 CSV 归档文件 csv_file open(SAVE_DIR / records.csv, a, newline, encodingutf-8) writer csv.writer(csv_file) while True: msgs wx.GetListenMessage() for chat, msg_list in msgs.items(): for msg in msg_list: # 只归档好友消息 if msg.type ! friend: continue # 图片/文件被自动保存后msg.content 会变成本地文件路径 writer.writerow([time.strftime(%Y-%m-%d %H:%M:%S), chat.who, msg.sender, msg.content]) csv_file.flush() print(f已归档: {chat.who} - {msg.content[:40]}) time.sleep(3)运行效果./chat_archive目录下会自动生成records.csv和按时间保存的图片/文件打开 CSV 即可看到「时间、会话、发送人、内容/文件路径」的完整流水。关键点拆解AddListenChat的三个开关savepic/savefile/savevoice是 wxauto 内置能力图片、文件会被下载到本地语音会尝试转成文字转换后msg.content直接是本地路径归档和后续分析非常方便。写入 CSV 时记得flush()避免程序异常退出时丢数据。想进一步分析可以把 CSV 喂给 pandas 做词频、时段分布统计形成运营报表。方案对比wxauto 适合谁不适合谁选工具前先看清楚边界wxauto 不是唯一选项但可能是最「所见即所得」的一个。对比项wxauto客户端 UI 自动化网页版 Hook 方案如 itchat 类通用 RPA纯人工上手成本低pip 安装即可中需处理登录态/协议高需录制流程无消息类型支持文本/图片/文件/语音转写多为文本为主取决于模板全部稳定性依赖微信版本与窗口状态依赖网页版接口依赖界面坐标稳定维护难度微信升级后需适配接口变动需重新研究界面改版需重录无风险低操作真实客户端较高非官方协议低无适合谁需要真实客户端收发的个人/小团队想快速验证自动化想法、快速上手的开发者对消息类型图片、文件有需求的场景。不适合谁需要大规模高并发收发、需要在服务器/容器里无人值守长期运行、依赖网页端稳定协议的项目——这些情况请考虑企业微信 API 或付费 SaaS。高频问题与排查清单Q1WeChat()初始化失败提示找不到窗口原因微信没登录或主窗口被完全最小化/遮挡。解决确保微信 PC 端已登录且主窗口处于打开状态再运行脚本脚本里会调用_show()主动把窗口调到前台。from wxauto import WeChat wx WeChat() # 失败时先检查微信窗口是否可见Q2提示微信版本不一致原因wxauto 3.9 版本适配的是微信 3.9.X 客户端。解决将微信客户端降级/保持在 3.9.X不同小版本的 UI 元素可能有细微差异可先在「文件传输助手」上跑通最小示例再扩展。Q3GetAllMessage()返回空列表原因当前没有打开任何聊天窗口或聊天窗口不在激活状态。解决先调用wx.ChatWith(目标会话)打开窗口再获取消息。wx.ChatWith(文件传输助手) msgs wx.GetAllMessage()Q4图片/文件一直没被自动保存原因GetAllMessage/ 轮询循环没开savepic/savefile参数。解决在AddListenChat或GetAllNewMessage(savepicTrue, savefileTrue)里显式开启。Q5脚本跑几小时后开始卡顿/失效原因UI 元素句柄失效、微信弹窗干扰或内存累积。解决周期性重建实例、捕获异常后重试避免长时间不重启。def restart_if_needed(): global wx time.sleep(3600) # 每小时重建一次 wx WeChat()进阶技巧与最佳实践优化项做法收益素材自动落盘打开savepic/savefile/savevoice图片/文件/语音自动转本地路径省去手动下载轮询改监听用AddListenChatGetListenMessage减少主窗口切换消息不漏收去重策略记录msg.idUI 元素 ID同一消息只处理一次避免重复回复异常自愈捕获异常 定时重建 WeChat 实例长时间运行更稳定节流控制轮询间隔 2~3 秒起步降低对客户端和 CPU 的压力合规提醒 ⚠️wxauto 的定位是 UIAutomation 技术交流与学习请勿用于骚扰、群发广告、批量加人等违反微信用户协议的行为也不建议在生产环境长期无人值守运行。自动化之前先想清楚这条消息是否「人发也合理」。可落地的小建议先以「文件传输助手」为沙盒跑通所有功能再逐步接入真实会话每加一个功能就重启一次脚本确认状态正常比一次性写完再调试高效得多。现在你可以动手了wxauto 的价值不在功能多而在「把重复动作交给代码」这件事足够简单。接下来你可以按顺序做这几件事运行上面的最小示例确认环境与微信版本匹配在「文件传输助手」里把场景一的关键词回复跑通按自己的业务改一份问答库和转发规则接到真实会话感兴趣的话深入阅读仓库里的源码与文档wxauto/wxauto.py、docs/class/了解GetSession、AtAll、SendFiles、好友申请处理等更多能力。把它当工具而不是魔法——它解决的是重复劳动真正有价值的部分仍然是你对业务的理解。【免费下载链接】wxautoWindows版本微信客户端非网页版自动化可实现简单的发送、接收微信消息简单微信机器人项目地址: https://gitcode.com/gh_mirrors/wx/wxauto创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表