多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

30分钟实现Windows微信自动化:wxauto完整上手教程

30分钟实现Windows微信自动化:wxauto完整上手教程 30分钟实现Windows微信自动化wxauto完整上手教程【免费下载链接】wxautoWindows版本微信客户端非网页版自动化可实现简单的发送、接收微信消息简单微信机器人项目地址: https://gitcode.com/gh_mirrors/wx/wxauto你是否有过这样的时刻作为群主每天要在好几个群里手动全体成员作为运营一边吃饭一边盯着手机给新客户回收到作为重度用户想把聊天记录里朋友发来的资料一张张存下来……这些重复动作占据了每天大量时间而你其实完全可以把它们交给代码。wxauto 就是为此而生的开源工具它直接操控 Windows 微信客户端非网页版用几十行 Python 就能实现消息发送、接收、自动回复和简单的微信机器人不需要任何网页版接口也不碰手机。本文会用 30 分钟带你从零跑通第一个示例再逐步拆解几个高频场景让你快速掌握这套微信自动化技能。一、先看清它能帮你做什么在动手之前先用一张表让你对 wxauto 的能力有个整体认知能力解决什么问题对应核心方法发送文本/文件批量通知、周报分发不用再手动点SendMsg / SendFiles接收与存档消息聊天记录备份、素材收集自动化GetAllMessage / GetNewMessage自动回复机器人常见问题秒回人只需要处理棘手的AddListenChat 轮询好友管理好友申请一键通过并打备注标签GetNewFriends / AddNewFriend群聊运营定时全员、拉人建群、导出成员名单AtAll / GetGroupMembers自动登录扫码登录、获取二维码流程脚本化LoginWnd一句话总结凡是你每天在微信里重复操作的体力活都值得用 wxauto 写一遍试试。二、三步完成环境配置2.1 核对系统与版本wxauto 对环境有硬性要求先确认你满足下面三点操作系统Windows 10/11 或 Server 2016 及以上微信客户端3.9.X 系列版本工具按此版本适配装错版本可能定位不到控件Python3.9 及以上2.2 获取代码并安装把仓库克隆到本地并安装依赖两条命令搞定git clone https://gitcode.com/gh_mirrors/wx/wxauto cd wxauto pip install .2.3 提前登录微信这一步最容易被忽略先把微信客户端打开并登录成功再运行你的 Python 脚本。wxauto 是通过 UIAutomation 技术去读取和操作已打开窗口里的控件微信没登录它就无从下手。⚠️ 如果遇到定位不到控件的报错九成是微信版本或登录状态出了问题。三、最快跑通首个示例先来一个最小可运行版本让你确认整条链路是通的from wxauto import WeChat # 初始化连接当前已登录的微信窗口 wx WeChat() # 给文件传输助手发一条消息 wx.SendMsg(你好这是 wxauto 发出的第一条消息, who文件传输助手) # 读取当前聊天窗口里的消息 msgs wx.GetAllMessage() for msg in msgs: print(f发送人: {msg.sender} | 内容: {msg.content} | 类型: {msg.type})运行后你会看到终端打印出初始化成功提示随后文件传输助手里多出一条新消息控制台则输出该窗口的历史消息清单。到这里你的第一次微信自动化已经成功——发送、读取这两个最基础的能力已经摸通了。✅四、高频场景逐一拆解4.1 场景一给指定联系人批量发通知运营或行政经常要挨个私聊发通知用 wxauto 可以循环遍历联系人名单把通知一条条发出去还能顺带发文件。from wxauto import WeChat wx WeChat() contacts [王芳, 李强, 赵敏] notice 各位好本周五下午 3 点召开项目周会请准时参加。 for name in contacts: wx.SendMsg(notice, whoname) # 循环发文本 wx.SendFiles([rD:\资料\周会材料.pdf], whoname) # 顺手发附件 print(f已发送给 {name})效果说明程序会依次搜索并打开每位联系人的聊天窗口、粘贴消息、回车发送再上传附件全程不需要你碰鼠标。需要注意who参数建议使用完整匹配的名称微信会优先按备注名查找。4.2 场景二打造一个自动回复小机器人客服、社群运营最常见的需求是收到提问先自动回应。wxauto 支持把某个聊天加入监听配合轮询读取新消息就能实现简单的机器人逻辑。from wxauto import WeChat import time wx WeChat() # 把产品咨询群加入监听 wx.AddListenChat(产品咨询群) # 持续轮询新消息 while True: msgs wx.GetListenMessage() # 获取所有监听窗口的新消息 for chat, msg_list in msgs.items(): for msg in msg_list: print(f[{chat}] {msg.sender}: {msg.content}) # 命中关键词就自动回复 if 价格 in msg.content: msg.quote(价格已私聊您请留意查收) time.sleep(2) # 每 2 秒检查一次效果说明脚本会每隔 2 秒检查监听窗口是否有新消息一旦出现包含价格的内容就自动引用并回复一条预设话术。你也可以把回复逻辑换成查数据库、调接口一个简易的微信客服机器人就这么搭起来了。不再需要回复时调用wx.RemoveListenChat(产品咨询群)即可停止监听。4.3 场景三好友申请自动审批做活动的几天里好友申请会暴涨逐个点同意、改备注、打标签很折磨人。这段代码可以把审批流程完全自动化from wxauto import WeChat wx WeChat() # 拉取待处理的好友申请 newfriends wx.GetNewFriends() tags [活动客户, 意向用户] for friend in newfriends: remark f活动_{friend.name} friend.Accept(remarkremark, tagstags) # 一键通过并设置备注、标签 print(f已通过{friend.name})效果说明运行后所有新的好友申请都会被自动通过且每个好友自动打上备注前缀和标签方便后续分组运营。反向的主动加好友也有对应方法wx.AddNewFriend(keywords微信号或手机号, addmsg你好我是..., remark客户A, tags[渠道])。4.4 场景四群聊运营三件套群主们最常用的三个操作——全员、拉成员建群、导出群成员名单wxauto 都封装好了from wxauto import WeChat import time wx WeChat() # 1. 在群里 所有人 并附上通知 wx.AtAll(例会 10 分钟后开始请入会, who部门大群) # 2. 从王芳的窗口拉李强进来形成群聊 wx.AddGroupMembers(group王芳, members[李强]) time.sleep(3) # 等群创建完成 wx.ManageGroup(name临时项目组) # 顺手改个群名 # 3. 先进入群聊窗口再导出成员名单 wx.ChatWith(临时项目组) members wx.GetGroupMembers() print(群成员, members)效果说明第一个调用会在群里发送所有人的消息第二个调用基于已有联系人创建群聊并改名最后一段代码则把群成员名单打印出来方便你做数据统计或群发。注意创建群聊后最好sleep几秒给微信客户端留出响应时间。4.5 场景五聊天记录自动归档想把某个窗口的图片、文件、语音都自动保存下来GetAllMessage支持按需下载from wxauto import WeChat wx WeChat() wx.ChatWith(设计对接群) # 拉取当前窗口消息并自动保存图片与文件 msgs wx.GetAllMessage(savepicTrue, savefileTrue) for msg in msgs: if msg.type in (image, file): print(已保存素材, msg.content) # 历史记录太长时往上翻加载更多 loaded wx.LoadMoreMessage() print(是否加载到更早消息, loaded)效果说明开启savepic和savefile后聊天窗口里的图片与文件会随着消息读取被自动下载到本地配合LoadMoreMessage可以一路回溯更早的聊天记录适合做素材库沉淀或备份。五、进阶玩法多窗口与自动登录如果日常需要在多台设备、多个微信账号之间切换可以借助LoginWnd把启动客户端 → 弹出登录窗口 → 展示二维码这串动作也脚本化from wxauto import LoginWnd wxpath D:/WeChat/WeChat.exe # 微信客户端实际路径 loginwnd LoginWnd(wxpath) loginwnd.login() # 拉起微信并显示登录窗口 qrcode_path loginwnd.get_qrcode() # 拿到二维码图片路径可推送给自己扫码 print(扫码二维码图片位于, qrcode_path)效果说明脚本会自动启动微信并截取登录二维码图片你把图片发给自己的手机扫码即可完成登录。配合定时任务可以实现下班后自动登录另一台机器上的微信号代为收发消息的玩法。六、常见问题与避坑指南实践中最容易踩的坑集中列出来帮你省时间微信版本不匹配务必使用 3.9.X 版本代码中版本号可在wxauto/wxauto.py的VERSION常量里查看版本不符时优先降级/升级微信而不是改代码。窗口没登录或没打开脚本依赖已打开的微信主窗口运行前先确认客户端已登录且窗口未被最小化到系统托盘。控件定位失败who参数尽量使用完整昵称/备注名不完全匹配时工具只取搜索结果第一条容易发错人。监听脚本卡住不退出监听场景需要手动循环轮询如每 2 秒调用一次GetListenMessage并配合time.sleep别让主线程空转或直接结束。发送大文件较慢SendFiles走的是系统剪贴板模拟粘贴文件路径建议用绝对路径发送前先确认文件存在。仅用于学习请遵守项目免责声明此工具仅用于 UIAutomation 技术交流学习勿用于生产环境、商业用途或任何非法活动。更多类方法细节可以翻阅项目内文档例如快速示例见 docs/example.mdWeChat 类完整方法表见 docs/class/WeChat.md核心实现集中在 wxauto/wxauto.py 与 wxauto/elements.py。30 分钟已经足够你完成发送第一条消息→搭建自动回复→批量处理好友申请这条完整链路。现在就打开电脑登录微信克隆代码把第三节的最小示例跑起来再挑一个你最想偷懒的场景动手改造——下一次重复劳动到来之前让它由你的代码代劳。【免费下载链接】wxautoWindows版本微信客户端非网页版自动化可实现简单的发送、接收微信消息简单微信机器人项目地址: https://gitcode.com/gh_mirrors/wx/wxauto创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表