微信自动化

配置 和 实例

 配置要求

  • 系统:Windows 10|11|Server2016+
  • Python:3.7+(不支持3.7.6和3.8.1)
  • 微信3.9.11.17版本

 下载库和实例化微信

1:首先在pycharm终端中下载 

pip install wxauto

2:你要在电脑上登录你的微信

3:导入和初始化微信

# 导入
from wxauto import WeChat

# 获取微信窗口对象
wx = WeChat()
# 输出 > 初始化成功,获取到已登录窗口:xxxx

测试


from wxauto import WeChat
wx = WeChat()

msg = 'hello, world!'
who = '文件传输助手'
wx.SendMsg(msg=msg, who=who)
wx.SendMsg(msg=msg, who=who, at=at)

要等他搜索和发送 

发送消息

1:@某人或某些人

from wxauto import WeChat
wx = WeChat()

msg = 'xxxxxxx,收到请回复!'
who = '工作群A'
at = ['张三', '李四']   # 要@的人
wx.SendMsg(msg=msg, who=who, at=at)

2:发送文件、视频、图片

from wxauto import WeChat
wx = WeChat()

files = [
    r'C:\Users\user\Desktop\1.jpg',   # 图片
    r'C:\Users\user\Desktop\2.txt',   # 文件
    r'C:\Users\user\Desktop\3.mp4'    # 视频
]

who = '文件传输助手'
wx.SendFiles(filepath=files, who=who)

获取聊天窗口消息

1: 获取当前对象的各种消息

from wxauto import WeChat
wx = WeChat()

# 获取对应界面人物所有消息
msgs = wx.GetAllMessage()

# 输出消息内容
for msg in msgs:
    if msg.type == 'sys':
        print(f'【系统消息】{msg.content}')  #比如你邀请了张三,你已经退出群聊
    
    elif msg.type == 'friend':
        sender = msg.sender # 这里可以将msg.sender改为msg.sender_remark,获取备注名
        print(f'{sender.rjust(20)}:{msg.content}')

    elif msg.type == 'self':
        print(f'{msg.sender.ljust(20)}:{msg.content}')
    
    elif msg.type == 'time':
        print(f'\n【时间消息】{msg.time}')

    elif msg.type == 'recall':
        print(f'【撤回消息】{msg.content}')

2:图片文件语音转文字保存

from wxauto import WeChat
wx = WeChat()

# 获取当前聊天窗口消息
msgs = wx.GetAllMessage(
    savepic   = True,   # 保存图片
    savefile  = True,   # 保存文件
    savevoice = True    # 保存语音转文字内容
)

# 输出消息内容
for msg in msgs:
    if msg.type == 'sys':
        print(f'【系统消息】{msg.content}')
    
    elif msg.type == 'friend':
        sender = msg.sender # 这里可以将msg.sender改为msg.sender_remark,获取备注名
        print(f'{sender.rjust(20)}:{msg.content}')

    elif msg.type == 'self':
        print(f'{msg.sender.ljust(20)}:{msg.content}')
    
    elif msg.type == 'time':
        print(f'\n【时间消息】{msg.time}')

    elif msg.type == 'recall':
        print(f'【撤回消息】{msg.content}')

3:加载历史聊天记录

from wxauto import WeChat
wx = WeChat()

# 加载更多历史消息
wx.LoadMoreMessage()

# 获取当前聊天窗口消息
msgs = wx.GetAllMessage()
... # 自行构建消息处理逻辑

获取主界面的消息

1:获得已发送所有消息

from wxauto import WeChat
wx = WeChat()

# 获取所有新消息
msgs = wx.GetAllNewMessage()

2:获取下一条消息

from wxauto import WeChat
wx = WeChat()

# 获取下一条新消息
msgs = wx.GetNextNewMessage()

3:监听消息

from wxauto import WeChat
wx = WeChat()

# 首先设置一个监听列表,列表元素为指定好友(或群聊)的昵称
listen_list = [
    '张三',
    '李四',
    '工作群A',
    '工作群B'
]

# 然后调用`AddListenChat`方法添加监听对象,其中可选参数`savepic`为是否保存新消息图片
for i in listen_list:
    wx.AddListenChat(who=i)

msgs = wx.GetListenMessage()
for chat in msgs:
    one_msgs = msgs.get(chat)   # 获取消息内容
    
    # 回复收到
    for msg in one_msgs:
        if msg.type == 'sys':
            print(f'【系统消息】{msg.content}')
        
        elif msg.type == 'friend':`
            sender = msg.sender # 这里可以将msg.sender改为msg.sender_remark,获取备注名
            print(f'{sender.rjust(20)}:{msg.content}')
            
            # !!! 回复收到,此处为`chat`而不是`wx` !!!
            chat.SendMsg('收到')  
            # 此处将msg.content传递给大模型,再由大模型返回的消息回复即可实现ai聊天

        elif msg.type == 'self':
            print(f'{msg.sender.ljust(20)}:{msg.content}')
        
        elif msg.type == 'time':
            print(f'\n【时间消息】{msg.time}')

        elif msg.type == 'recall':
            print(f'【撤回消息】{msg.content}')

添加好友

1:基本方式

from wxauto import WeChat
wx = WeChat()

keywords = '13800000000'      # 微信号、手机号、QQ号
addmsg = '你好,我是xxxx'      # 添加好友的消息
remark = '备注名字'            # 备注名,没有则不用设置
tags = ['朋友', '同事']        # 标签列表

# 发起好友申请
wx.AddNewFriend(keywords, addmsg=addmsg, remark=remark, tags=tags)

2:获取好友申请表

from wxauto import WeChat
wx = WeChat()

new = wx.GetNewFriends()

3:通过好友申请列表

from wxauto import WeChat
wx = WeChat()

new = wx.GetNewFriends()

# 获取第一个可接受的新好友对象
new_friend1 = new[0]  #没有就会报错,可以用try和while写一个无限循环来检测

print(new_friend1.name)  # 获取好友申请昵称
# 张三

print(new_friend1.msg)  # 获取好友申请信息
# 你好,我是xxx群的张三

# 接受好友请求,并且添加备注“备注张三”、添加标签wxauto
new_friend1.Accept(remark='备注张三', tags=['同事'])

# 切换回聊天页面,添加后需要切换到聊天界面
wx.SwitchToChat()  

切换界面

wx.SwitchToContact()#切换到通讯录
wx.SwitchToChat() #切换到聊天主界面

定时发送

1:倒计时发送

from wxauto import WeChat
import time
import datetime

# 设定倒计时的时间
countdown_time = "00:01:00"


# 将倒计时时间转换为秒
def time_to_seconds(timestr):
    hours, minutes, seconds = map(int, timestr.split(':'))
    return hours * 3600 + minutes * 60 + seconds


# 获取当前时间
current_time = datetime.datetime.now()
# 计算倒计时结束的时间
end_time = current_time + datetime.timedelta(seconds=time_to_seconds(countdown_time))

# 持续检查当前时间,直到倒计时结束
while True:
    current_time = datetime.datetime.now()
    remaining_time = end_time - current_time

    # 如果倒计时已经结束,发送消息并退出循环
    if remaining_time.total_seconds() <= 0:
        wx = WeChat()
        msg = 'hello, world!'
        who = '文件传输助手'
        wx.SendMsg(msg=msg, who=who)
        break

    # 打印剩余时间
    print(f"倒计时:{remaining_time.total_seconds()}秒")
    time.sleep(1)

2:准时发送

from wxauto import WeChat
import time


while True:
    time_now= time.strftime("%H:%M:%S",time.localtime())  #随时获取当前时间随时获取
    if time_now=="17:56:52"  //这里写你要发送消息的时间时分秒
        wx=WeChat()
        msg = 'hello, world!'
        who = '文件传输助手'
        wx.SendMsg(msg=msg, who=who)

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值