用Python轻松打造微信机器人:wxauto微信自动化快速上手指南
【免费下载链接】wxautoWindows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息,简单微信机器人项目地址: https://gitcode.com/gh_mirrors/wx/wxauto
如果你每天要花大量时间在微信上重复做同一件事——给客户发通知、盯着群里 @ 自己的消息、机械式地回复"收到"——那么这篇指南就是为你准备的。本文将介绍 wxauto,一个基于 Windows 版微信客户端(非网页版)的 Python 自动化库,它能帮你把"复制粘贴、点发送"这类体力活交给程序完成。文中的代码全部基于项目真实 API,零基础读者照着敲一遍即可跑通。
一、先说清楚:wxauto 到底能干什么
wxauto 的底层原理是 UIAutomation(UI自动化技术,即模拟人工操作桌面界面),它不依赖网页版微信、不调用任何私有的协议接口,而是像真人一样"看"微信窗口、"点"微信按钮,因此使用门槛低,也不容易被封号机制盯上(但请仅用于学习交流)。
它能替你完成的核心操作包括:
- 发送文本、文件、表情、链接卡片,支持 @ 成员和换行排版
- 读取当前聊天窗口的消息,并按文本、图片、语音、视频等类型分类
- 监听指定好友或群聊的来信,触发自定义回调函数
- 处理好友申请,自动通过并设置备注与标签
- 管理群聊:拉人、改群名、发公告、@ 所有人
一句话概括:凡是你手动能在微信里完成的操作,大部分都可以交给 wxauto。
二、运行前需要准备什么
| 环境 | 要求 |
|---|---|
| 操作系统 | Windows 10 / 11 / Server 2016 及以上 |
| 微信版本 | 3.9.X 系列客户端(项目专门针对该版本适配) |
| Python | 3.9 及以上 |
安装方式很简单。先把仓库克隆到本地:
git clone https://gitcode.com/gh_mirrors/wx/wxauto进入目录后用 pip 完成安装:
cd wxauto pip install .⚠️ 注意:请确保微信客户端已经登录且处于打开状态,因为 wxauto 的操作对象就是正在运行的微信主窗口。
三、第一次自动化:发送与读取消息
先从一个最直观的体验开始:向指定联系人发送一条文本消息。
from wxauto import WeChat # 初始化实例,连接已打开的微信客户端 wx = WeChat() # 给"张三"发送消息 wx.SendMsg("你好,这是wxauto发出的第一条消息", who="张三")who参数指定接收人,可以是好友昵称或群名。发送成功后,再试试把聊天窗口里的消息读出来:
# 读取当前聊天窗口的消息列表 msgs = wx.GetAllMessage() for msg in msgs: print(f"{msg.sender}:{msg.content}")每条消息对象都带sender(发送者)和content(内容)等属性,type属性还可以帮你区分文本、图片、语音等类型。到这里,你已经完成了"发消息 + 收消息"两个最基础的动作。
💡 技巧:如果目标窗口没有被激活,可以先用
wx.ChatWith(who="张三")主动切换到对应聊天,再执行读取操作,结果更稳定。
四、进阶实战:5分钟实现消息自动回复
光能收发消息还不够,我们直接做一个能自动应答的迷你机器人。核心思路是利用监听机制:当指定聊天窗口出现新消息时,程序自动调用你写的处理函数。
from wxauto import WeChat from wxauto.msgs import FriendMessage wx = WeChat() # 消息处理函数:每条新消息都会触发 def on_message(msg, chat): # 只回应好友发来的文本消息 if isinstance(msg, FriendMessage): msg.quote("收到,我正在忙,稍后回复你") # 监听"张三"的聊天窗口 wx.AddListenChat(nickname="张三", callback=on_message) # 保持程序运行,否则主线程退出后监听会中断 wx.KeepRunning()代码里msg.quote()会引用对方消息再回复,交互感更强。你完全可以在这个回调函数里扩展业务逻辑,比如把消息写入本地日志、匹配关键词后返回不同答复,甚至接上大模型接口,实现真正意义上的"微信机器人"。
五、更多实用场景:自动处理申请与群管理
5.1 批量通过好友申请
from wxauto import WeChat wx = WeChat() # 拉取待处理的好友申请 newfriends = wx.GetNewFriends(acceptable=True) # 逐条通过,并自动打上备注和标签 for friend in newfriends: friend.accept(remark=f"来自_{friend.name}", tags=["好友"])5.2 快速组建并管理群聊
import time from wxauto import WeChat wx = WeChat() # 以"张三"为起点,把"李四"拉进来形成群聊 wx.AddGroupMembers(group="张三", members=["李四"]) time.sleep(3) # 给新群改个正式名字 wx.ManageGroup(name="项目协作群")5.3 一次 @ 所有人发布通知
wx.AtAll("下午三点会议室开会,请准时参加", "项目协作群")此外,项目还提供了get_wx_clients()用于获取所有已登录的微信客户端实例,方便在多开场景下分别操作;LoginWnd类甚至可以帮你自动拉起微信、获取登录二维码。这些 API 的详细参数都可以在项目的docs文档目录中找到对应说明。
六、避坑指南:新手最容易踩的四个坑
- 窗口被遮挡或最小化:wxauto 依赖读取界面元素,微信窗口如果被完全遮挡,可能出现定位失败。建议保持微信窗口在桌面可见区域。
- 搜索对象重名:当联系人存在同名时,发送消息可能发错人。此时可以给
ChatWith或SendMsg传入exact=True开启精确匹配,或者改用备注名。 - 监听中断:使用
AddListenChat后主线程会先退出,一定要调用KeepRunning()让程序持续挂起。 - 使用规范:本项目仅用于 UIAutomation 技术的交流学习,禁止用于生产项目、商业用途或任何非法活动,请遵守微信官方用户协议。
七、写在最后
从安装到跑通第一个自动化脚本,整个过程不到半小时。wxauto 把"模拟人工操作微信"这件事封装得足够简单,让你可以把精力放在业务逻辑上:无论是做一个定时提醒助手、一个群消息汇总工具,还是一个接入 AI 的自动回复机器人,都能用它快速落地。
现在就把代码复制到你的电脑上,用"文件传输助手"当试验对象跑一遍。当看到程序替你发出第一条消息时,你离自己的微信自动化之旅,就只差一个创意了。
【免费下载链接】wxautoWindows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息,简单微信机器人项目地址: https://gitcode.com/gh_mirrors/wx/wxauto
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考