项目地址:github-wxauto 点击即可访问
项目官网:wxauto 点击即可访问
😂什么是wxauto?
wxauto 是作者在2020年开发的一个基于 UIAutomation 的开源 Python 微信自动化库,最初只是一个简单的脚本,只能获取消息和发送消息,经历了2年多的停滞,期间很多网友留言说需要更多的功能,所以在2023年针对新版微信重新开发了 wxauto,增加了更多的功能,即使 Python 初学者也可以简单上手自动化微信操作。目前已实现很多日常的微信操作的自动化,如自动发送消息、自动添加好友、自动回复、自动获取聊天记录、图片、文件等功能,后续还会根据反馈更新更多功能。
📌wxauto 的主要功能
- 消息发送:支持发送文字、图片、文件、@群好友、引用消息等功能
- 聊天记录:可获取好友的聊天记录内容
- 监听消息:实时获取指定监听好友(群)的新消息
- 其他定制功能:根据需求定制自动化流程,满足各种特殊需求。
🎧为什么选择 wxauto?
- 开源免费:完全开源,你可以自由使用和修改,帮助更多人实现微信自动化。
- 简单易用:界面简洁,操作简单,编程小白也能快速上手。
- 灵活强大:支持多种操作和定制,满足各种自动化需求。
💡 未来展望
作者我们将持续优化 wxauto,增加更多实用功能,帮助更多用户实现微信自动化。
一、环境配置
Windows版本微信客户端自动化,可实现简单的发送、接收微信消息、保存聊天图片
3.9.11.17版本微信安装包下载: 123云盘 提取码:seqA
环境 | 版本 |
---|---|
OS | `windows 10 |
微信 | `微信 |
Python | `Python |
获取wxauto
CMD窗口:
pip install wxauto
Python窗口:
>>> import wxauto
>>> wxauto.VERSION
'3.9.11.17'
>>> wx = wxauto.WeChat()
初始化成功,获取到已登录窗口:xxx
二、快速入门
1. 获取微信对象
# 导入
from wxauto import WeChat
# 获取微信窗口对象
wx = WeChat()
# 输出 > 初始化成功,获取到已登录窗口:xxxx
🚨注意
请先登录PC微信客户端,再运行上述代码
🚨注意
上面定义了wx变量,后续文档不再重复定义和解释wx变量
2. 一个简单的收到机器人
首先设置一个监听列表,列表元素为指定好友(或群聊)的昵称
listen_list = [
'张三',
'李四',
'工作群A',
'工作群B'
]
然后调用AddListenChat
方法添加监听对象,其中可选参数savepic
为是否保存新消息图片
for i in listen_list:
wx.AddListenChat(who=i, savepic=True)
最后调用GetListenMessage
方法,实现消息监听,收到消息类型为friend
的消息之后,调用SendMsg
方法回复消息
# 持续监听消息,并且收到消息后回复“收到”
wait = 1 # 设置1秒查看一次是否有新消息
while True:
msgs = wx.GetListenMessage()
for chat in msgs:
who = chat.who # 获取聊天窗口名(人或群名)
one_msgs = msgs.get(chat) # 获取消息内容
# 回复收到
for msg in one_msgs:
msgtype = msg.type # 获取消息类型
content = msg.content # 获取消息内容,字符串类型的消息内容
print(f'【{
who}】:{
content}')
# ===================================================
# 处理消息逻辑(如果有)
#
# 处理消息内容的逻辑每个人都不同,按自己想法写就好了,这里不写了
#
# ===================================================
# 如果是好友发来的消息(即非系统消息等),则回复收到
if msgtype == 'friend':
chat.SendMsg('收到') # 回复收到
time.sleep(wait)
👌SUCCESS
恭喜你,你已经实现了一个简单的微信机器人,可以自动回复消息了!
完整代码
# 导入
from wxauto import WeChat
# 获取微信窗口对象
wx = WeChat()
# 输出 > 初始化成功,获取到已登录窗口:xxxx
# 设置监听列表
listen_list = [
'张三',
'李四',
'工作群A',
'工作群B'
]
# 循环添加监听对象
for i in listen_list:
wx.AddListenChat(who=i, savepic=True)
# 持续监听消息,并且收到消息后回复“收到”
wait = 1 # 设置1秒查看一次是否有新消息
while True:
msgs = wx.GetListenMessage()
for chat in msgs:
who = chat.who # 获取聊天窗口名(人或群名)
one_msgs = msgs.get(chat) # 获取消息内容
# 回复收到
for msg in one_msgs:
msgtype = msg.type # 获取消息类型
content = msg.content # 获取消息内容,字符串类型的消息内容
print(f'【{
who}】:{
content}')
# ===================================================
# 处理消息逻辑(如果有)
#
# 处理消息内容的逻辑每个人都不同,按自己想法写就好了,这里不写了
#
# ===================================================
# 如果是好友发来的消息(即非系统消息等),则回复收到
if msgtype == 'friend':
chat.SendMsg('收到') # 回复收到
time.sleep(wait)
三、方法说明
发送消息
1. 发送文字消息SendMsg
参数说明:
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
msg | str | / | 要发送的文字内容 |
who | str | None | 要发送给谁,默认则发送给当前打开的页面 |
clear | bool | True | 是否清除原本聊天编辑框的内容 |
at | list,str | None | 要@的人,可以是一个人或多个人,格式为str或list,例如:"张三"或[“张三”, “李四”] |
1.1简单的发送文字信息
from wxauto import WeChat
wx = WeChat(