
WxAuto 作为一款基于 Python 的微信桌面版自动化库,通过模拟用户操作(如点击、输入)来实现自动化流程。凭借其简洁的 API 和强大的功能,帮助用户实现消息收发、聊天记录管理、好友操作等常见任务的自动化,提升工作效率。
WxAuto 是一个专为 Windows 系统设计的微信自动化工具,它基于 Python 3.7+依赖 wxauto 库,适用于微信桌面版。其主要功能包括:
在使用前,请确保已安装正确版本的 Python 并配置好环境(参考官方文档:https://wxauto.loux.cc/docs/documents/Environment)。
首先,通过 pip 安装 wxauto 库:
pip install wxauto初始化微信对象是第一步,代码如下:
from wxauto import WeChat
# 获取微信窗口对象(需提前登录微信桌面版)wx = WeChat()# 输出示例:初始化成功,获取到已登录窗口:WeChatWxAuto 支持发送文字、图片、文件等多种消息类型。
发送文字消息:
使用 SendMsg 方法,可指定接收人、消息内容及@提醒。
# 发送文字消息示例
msg_content = "您好,这是通过 WxAuto 发送的测试消息!"
recipient = "技术交流群" # 替换为实际聊天对象名称
wx.SendMsg(msg=msg_content, who=recipient, at=["管理员"])发送文件或图片:
通过 SendFiles 方法发送本地文件,支持多文件批量发送。
# 发送多个文件示例
file_list = [
r"C:\data\report.pdf",
r"C:\data\chart.png"
]
wx.SendFiles(filepath=file_list, who=recipient)自动化处理消息是 WxAuto 的核心功能之一。
获取当前聊天窗口消息:
使用 GetAllMessage 获取全部消息,并可选择保存媒体文件。
# 获取消息并保存图片
messages = wx.GetAllMessage(savepic=True, savefile=False)
for msg in messages:
if msg.type == 'friend':
print(f"{msg.sender} 说:{msg.content}")
elif msg.type == 'self':
print(f"我 发送:{msg.content}")监听新消息:
通过 AddListenChat 和 GetListenMessage 实现实时监听。
# 监听指定聊天
listen_targets = ["客户A", "项目组"]
for target in listen_targets:
wx.AddListenChat(who=target)
new_msgs = wx.GetListenMessage()
for chat, msg_list in new_msgs.items():
for msg in msg_list:
if msg.type == 'friend':
chat.SendMsg("自动回复:消息已收到,稍后处理。")WxAuto 支持自动化好友管理,如添加好友或通过申请。
添加好友:
使用 AddNewFriend 方法发起好友申请。
wx.AddNewFriend(
keywords="user123", # 微信号或手机号
addmsg="您好,我是来自技术社区的小王",
remark="技术伙伴",
tags=["同行", "合作"]
)通过好友申请:
获取新申请列表并自动通过。
new_applications = wx.GetNewFriends()
if new_applications:
application = new_applications
application.Accept(remark="新好友", tags=["默认"])wx.ChatWith(who="家人群")friends = wx.GetAllFriends()
for friend in friends:
print(f"昵称:{friend['nickname']}, 备注:{friend['remark']}")from wxauto import WeChat
wx = WeChat() # 绑定已登录微信窗口
chat = "技术交流群" # 群名称或好友备注
wx.SendMsg("大家好,这是自动发送的消息", who=chat, at=["小王"])files = [
r"D:\report\day.xlsx",
r"D:\report\chart.png"
]
wx.SendFiles(filepath=files, who=chat)场景:客服机器人、群消息同步、关键字告警。
wx.AddListenChat(who="客户咨询群")
while True:
msgs = wx.GetListenMessage()
for chat, msg_list in msgs.items():
for msg in msg_list:
if msg.type == 'text' and "价格" in msg.content:
chat.SendMsg("价格表:https://example.com/price")
time.sleep(1)sources = ["售前群", "售后群"]
target = "运营日报群"
for s in sources:
wx.AddListenChat(who=s)
while True:
msgs = wx.GetListenMessage()
for chat, msg_list in msgs.items():
for msg in msg_list:
if msg.type == 'text':
wx.SendMsg(f"{chat.name}: {msg.content}", who=target)
time.sleep(1)wx.AddNewFriend(
keywords="user123", # 微信号/手机号
addmsg="您好,我是客服小助手",
remark="客户-user123",
tags=["付费用户"]
)new_friends = wx.GetNewFriends()
for applicant in new_friends:
applicant.Accept(remark="新客-来源官网")
wx.SendMsg("欢迎加入社群!回复【菜单】获取服务列表", who=applicant)import schedule, datetime, pandas as pd
def job():
df = pd.read_excel(r"D:\data\daily.xlsx")
img_path = r"D:\data\daily.png"
df.plot().figure.savefig(img_path)
wx.SendFiles([img_path], who="运营总监群")
schedule.every().day.at("09:00").do(job)
while True:
schedule.run_pending()
time.sleep(1)不要 | 建议 |
|---|---|
1 分钟 > 30 条消息 | 限速 1 秒/条 |
连续 24 h 运行 | 每 4 h 重启微信 |
重复内容轰炸 | 模板变量 + 随机后缀 |
限速装饰器:
import time, random
def rate_limit(interval=1.2):
def decorator(func):
def wrapper(*args, **kwargs):
time.sleep(interval + random.uniform(0, 0.3))
return func(*args, **kwargs)
return wrapper
return decorator
@rate_limit()
def safe_send(msg, who):
wx.SendMsg(msg, who=who)WxAuto 以其轻量化和易用性,成为 Python 开发者实现微信自动化的优选工具。可快速构建自动回复、群管理或数据收集等实用脚本。
“无他,惟手熟尔”!有需要就用起来。
本文分享自 Nicholas与Pypi 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!