从0到1搭建微信机器人:wxauto 微信自动化实战指南
【免费下载链接】wxautoWindows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息,简单微信机器人项目地址: https://gitcode.com/gh_mirrors/wx/wxauto
群公告要挨个@人、好友申请点到手软、同一句话要对不同的人重复说三遍——如果你每天都被这些微信琐事困住,那 wxauto 就是为你准备的工具。它是一个基于 Windows UIAutomation 技术的 Python 库,直接操控微信桌面客户端(非网页版),不依赖任何协议逆向,就能实现消息自动发送、接收以及简单的微信机器人功能。本文不按官方文档顺序平铺介绍,而是用一条「从发消息到自动值班」的成长主线,带你边解决真实痛点边掌握它。
先想清楚:微信自动化到底能替你省下什么
很多人在手动重复操作时,心里会有一个隐约的疑问:这些动作真的能被程序代替吗?答案是肯定的,前提是你做的事符合两个特征:操作路径固定,比如"打开某个窗口→输入文字→点发送";触发条件明确,比如"收到某人的消息→回一句话"。wxauto 的原理就是模拟人眼和人手——它读取微信窗口上肉眼可见的界面元素,再像人一样点击、输入、滚动。这意味着它不需要微信开放任何接口,普通账号就能用,这也是它和那些容易封号的网页版机器人最大的区别。
想清楚这一点,下面的每一段代码就有了明确目的:不是"背 API",而是"把我的重复劳动翻译给电脑听"。
第一站:三步打通环境,先让第一条消息发出去
不管后续要做什么,第一步永远是让库跑起来,用一次成功的发送给自己建立信心。
环境要求并不复杂,三样缺一不可:
- 操作系统:Windows 10 / 11 / Server 2016 及以上
- 微信客户端:3.9.X 桌面版(必须已经登录,窗口保持打开)
- Python:3.9 及以上
获取源码并安装依赖,在终端执行:
git clone https://gitcode.com/gh_mirrors/wx/wxauto cd wxauto pip install .安装完成后,写一个最小 Demo:连接客户端,给"文件传输助手"发一条测试消息。
from wxauto import WeChat # 连接当前已登录的微信客户端 bot = WeChat() # 发一条测试消息给文件传输助手,验证链路是否打通 bot.SendMsg("微信机器人已上线,测试成功", who="文件传输助手")跑通之后你会看到文件传输助手里多了一条消息。别看它简单,这背后完成了窗口定位、输入框聚焦、文本填入、点击发送一整串动作,等于把"人工发消息"这个动作压缩成了一行代码。这条链路一旦打通,后面所有功能都是在这条链路上叠加。
发送消息的进阶玩法:@人、打字机效果与传文件
如果你只把SendMsg当群发工具用,就浪费了它一半的能力。日常运营中更高频的场景是:在群里分工、发通知、给同事传资料。这三件事分别对应三个参数或方法。
场景一:群里 @ 指定成员。SendMsg支持at参数,一次可以 @ 一个人或一组人:
bot.SendMsg("请各位把周报发到群里", who="项目群", at=["张三", "李四"])场景二:让消息"像人打出来"一样出现。如果担心过于机械,可以用打字机模式SendTypingText,它逐字输入文字,视觉上和真人打字几乎一致,还支持用{@某人}语法在消息中间穿插 @,非常适合发分工说明:
bot.SendTypingText( "各位好:\n{@张三} 请负责前端部分\n{@李四} 请负责后端部分", who="项目群" )场景三:把本地文件发出去。日报、表格、安装包,一条命令搞定:
bot.SendFiles(filepath="C:/reports/日报.xlsx", who="张三")到这里,"发"的能力你已经齐了。但只发不收,还算不上机器人——接下来进入最有价值的"听"。
让微信替你值班:消息监听与自动回复怎么做
自动化的最高价值,是把你从"必须盯着屏幕"里解放出来。wxauto 提供的监听机制是:给某个聊天窗口挂一个回调函数,一旦有新消息进来,函数就会被自动调用,消息对象和窗口对象作为参数传给你。
def on_message(msg, chat): # 判断消息来源:friend 表示对方(好友/群友)发来的 if msg.attr == "friend": msg.quote("收到,我会尽快处理") # 引用原话回复,更像真人 bot.AddListenChat(nickname="客户群", callback=on_message) # 监听是跑在后台守护线程里的,必须让主线程挂起,程序才不会退出 bot.KeepRunning()回调里的msg对象信息量很大:msg.content是消息正文,msg.type区分文本、图片、视频、语音、链接等类型,msg.download()可以直接把图片视频存到本地,msg.to_text()能把语音转成文字。把这些组合起来,就是一个能自动存文件、自动应答的"值班机器人":
def on_message(msg, chat): if msg.type in ("image", "video"): msg.download() # 图片视频自动归档到本地 if msg.type == "text" and "报价" in msg.content: msg.quote("报价单已整理好,马上发您") # 关键词自动应答注意KeepRunning()这一步不能省——很多新手监听没反应,不是代码写错,而是主线程提前结束把守护线程一起带走了。
把"关系运营"也自动化:好友申请与群管理
除了收发消息,微信运营里还有两件高频杂事:通过好友申请和管理群。
新好友申请可以一次性拉取,逐个通过并自动设置备注和标签,再也不用点一下、填一下:
pending = bot.GetNewFriends(acceptable=True) for f in pending: f.accept(remark=f"好友_{f.name}", tags=["wxauto来源"])反向操作同样支持:AddNewFriend可以用昵称、微信号或手机号主动搜索并发出申请,还能指定验证消息、备注和"朋友圈/仅聊天"权限。
群管理方面,AtAll一键在群里 @ 所有人发通知,ManageGroup可以改群名、改群公告、改自己的群昵称,AddGroupMembers/RemoveGroupMembers负责拉人踢人:
bot.AtAll("下午三点开会,请准时到场", who="工作群") bot.ManageGroup(name="工作群·2026", notice="新人请先看群公告")这些操作单独看都只是省几秒钟,但叠加到每天几十次上,省下的就是几十分钟,而且不会累、不会漏。
实战串联:一个可落地的"自动值班客服"脚本
现在把前面所有能力串成一个完整场景。假设你运营着两个群,日常要做三件事:新加的好友自动通过并打标签、群里有人问"在吗"自动应答、群里的图片视频自动备份。一个脚本就能全部覆盖:
from wxauto import WeChat bot = WeChat() target_groups = ["客户群", "产品讨论群"] def on_message(msg, chat): # ① 图片/视频自动下载备份,防止过期被清理 if msg.type in ("image", "video"): msg.download() # ② 命中关键词就自动应答,避免客户干等 if msg.type == "text" and "在吗" in msg.content: msg.quote("在的,请问有什么可以帮您?") # ③ 对所有目标群挂上同一个回调 for group in target_groups: bot.AddListenChat(nickname=group, callback=on_message) # ④ 新好友申请统一通过,并打上运营标签 for f in bot.GetNewFriends(acceptable=True): f.accept(remark=f"新客_{f.name}", tags=["潜在客户"]) # ⑤ 常驻运行 bot.KeepRunning()跑上一天你就会发现:图片自动归档了、重复问题自动回复了、好友申请一个不落地进通讯录了。而你真正要做的,只是决定脚本什么时候下班。
你可能踩的坑:wxauto 高频问题排查清单
自动化工具的特性是"环境敏感",以下是新手最容易碰到的几个坑,提前了解能省下大量排查时间:
- 连不上微信或找不到窗口:确认微信是 3.9.X 版本且已登录、主窗口没有被最小化到托盘或完全遮挡。窗口在后台但可见即可,锁屏状态下不要跑监听。
- 程序跑几秒就退出:99% 是因为没调用
KeepRunning(),主线程结束把监听线程带走了。 - 好友搜不到、发错对象:搜索好友时留意
exact参数,同名较多时设置精确匹配;群内成员则以"群昵称"为准。 GetFriendDetails慢到怀疑人生:这个方法约 0.5~1 秒处理一个好友,好友多时先传n=10小范围测试,不要一上来拉全量。- 想要的功能找不到方法:先翻项目自带的文档目录
docs/,里面按WeChat、Chat、Message等类拆得很细,比直接读源码快得多。 - 请务必合规使用:该库仅用于 UIAutomation 技术的学习交流,作者明确声明禁止用于生产项目、商业用途和非法场景,请自行评估风险并遵守微信使用规范。
下一步:照着这份清单开始动手
不用等"看完所有文档再动手",直接按下面的节奏来:
- 今天:装好依赖,跑通第一条
SendMsg,确认"发送链路"没问题; - 明天:给一个不重要的群挂上
AddListenChat,实现"收到关键词就回复"; - 周末:把上面的值班客服脚本跑起来,观察它替你省下了多少手动操作;
- 之后:按需查阅项目内
docs/文档,探索转发、合并转发、朋友圈、多开等更多能力。
工具的价值从来不是"会写",而是"跑起来的那一刻"。现在就去把第一条消息发出去——你的微信自动化之旅,从这一行代码开始。
【免费下载链接】wxautoWindows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息,简单微信机器人项目地址: https://gitcode.com/gh_mirrors/wx/wxauto
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考