当前位置:   article > 正文

微信自动化_wx.getlistenmessage

wx.getlistenmessage

配置 和 实例

 配置要求

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

 下载库和实例化微信

1:首先在pycharm终端中下载 

pip install wxauto

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

3:导入和初始化微信

  1. # 导入
  2. from wxauto import WeChat
  3. # 获取微信窗口对象
  4. wx = WeChat()
  5. # 输出 > 初始化成功,获取到已登录窗口:xxxx

测试

  1. from wxauto import WeChat
  2. wx = WeChat()
  3. msg = 'hello, world!'
  4. who = '文件传输助手'
  5. wx.SendMsg(msg=msg, who=who)
  6. wx.SendMsg(msg=msg, who=who, at=at)

要等他搜索和发送 

发送消息

1:@某人或某些人

  1. from wxauto import WeChat
  2. wx = WeChat()
  3. msg = 'xxxxxxx,收到请回复!'
  4. who = '工作群A'
  5. at = ['张三', '李四'] # 要@的人
  6. wx.SendMsg(msg=msg, who=who, at=at)

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

  1. from wxauto import WeChat
  2. wx = WeChat()
  3. files = [
  4. r'C:\Users\user\Desktop\1.jpg', # 图片
  5. r'C:\Users\user\Desktop\2.txt', # 文件
  6. r'C:\Users\user\Desktop\3.mp4' # 视频
  7. ]
  8. who = '文件传输助手'
  9. wx.SendFiles(filepath=files, who=who)

获取聊天窗口消息

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

  1. from wxauto import WeChat
  2. wx = WeChat()
  3. # 获取对应界面人物所有消息
  4. msgs = wx.GetAllMessage()
  5. # 输出消息内容
  6. for msg in msgs:
  7. if msg.type == 'sys':
  8. print(f'【系统消息】{msg.content}') #比如你邀请了张三,你已经退出群聊
  9. elif msg.type == 'friend':
  10. sender = msg.sender # 这里可以将msg.sender改为msg.sender_remark,获取备注名
  11. print(f'{sender.rjust(20)}{msg.content}')
  12. elif msg.type == 'self':
  13. print(f'{msg.sender.ljust(20)}{msg.content}')
  14. elif msg.type == 'time':
  15. print(f'\n【时间消息】{msg.time}')
  16. elif msg.type == 'recall':
  17. print(f'【撤回消息】{msg.content}')

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

  1. from wxauto import WeChat
  2. wx = WeChat()
  3. # 获取当前聊天窗口消息
  4. msgs = wx.GetAllMessage(
  5. savepic = True, # 保存图片
  6. savefile = True, # 保存文件
  7. savevoice = True # 保存语音转文字内容
  8. )
  9. # 输出消息内容
  10. for msg in msgs:
  11. if msg.type == 'sys':
  12. print(f'【系统消息】{msg.content}')
  13. elif msg.type == 'friend':
  14. sender = msg.sender # 这里可以将msg.sender改为msg.sender_remark,获取备注名
  15. print(f'{sender.rjust(20)}{msg.content}')
  16. elif msg.type == 'self':
  17. print(f'{msg.sender.ljust(20)}{msg.content}')
  18. elif msg.type == 'time':
  19. print(f'\n【时间消息】{msg.time}')
  20. elif msg.type == 'recall':
  21. print(f'【撤回消息】{msg.content}')

3:加载历史聊天记录

  1. from wxauto import WeChat
  2. wx = WeChat()
  3. # 加载更多历史消息
  4. wx.LoadMoreMessage()
  5. # 获取当前聊天窗口消息
  6. msgs = wx.GetAllMessage()
  7. ... # 自行构建消息处理逻辑

获取主界面的消息

1:获得已发送所有消息

  1. from wxauto import WeChat
  2. wx = WeChat()
  3. # 获取所有新消息
  4. msgs = wx.GetAllNewMessage()

2:获取下一条消息

  1. from wxauto import WeChat
  2. wx = WeChat()
  3. # 获取下一条新消息
  4. msgs = wx.GetNextNewMessage()

3:监听消息

  1. from wxauto import WeChat
  2. wx = WeChat()
  3. # 首先设置一个监听列表,列表元素为指定好友(或群聊)的昵称
  4. listen_list = [
  5. '张三',
  6. '李四',
  7. '工作群A',
  8. '工作群B'
  9. ]
  10. # 然后调用`AddListenChat`方法添加监听对象,其中可选参数`savepic`为是否保存新消息图片
  11. for i in listen_list:
  12. wx.AddListenChat(who=i)
  13. msgs = wx.GetListenMessage()
  14. for chat in msgs:
  15. one_msgs = msgs.get(chat) # 获取消息内容
  16. # 回复收到
  17. for msg in one_msgs:
  18. if msg.type == 'sys':
  19. print(f'【系统消息】{msg.content}')
  20. elif msg.type == 'friend':`
  21. sender = msg.sender # 这里可以将msg.sender改为msg.sender_remark,获取备注名
  22. print(f'{sender.rjust(20)}{msg.content}')
  23. # !!! 回复收到,此处为`chat`而不是`wx` !!!
  24. chat.SendMsg('收到')
  25. # 此处将msg.content传递给大模型,再由大模型返回的消息回复即可实现ai聊天
  26. elif msg.type == 'self':
  27. print(f'{msg.sender.ljust(20)}{msg.content}')
  28. elif msg.type == 'time':
  29. print(f'\n【时间消息】{msg.time}')
  30. elif msg.type == 'recall':
  31. print(f'【撤回消息】{msg.content}')

添加好友

1:基本方式

  1. from wxauto import WeChat
  2. wx = WeChat()
  3. keywords = '13800000000' # 微信号、手机号、QQ号
  4. addmsg = '你好,我是xxxx' # 添加好友的消息
  5. remark = '备注名字' # 备注名,没有则不用设置
  6. tags = ['朋友', '同事'] # 标签列表
  7. # 发起好友申请
  8. wx.AddNewFriend(keywords, addmsg=addmsg, remark=remark, tags=tags)

2:获取好友申请表

  1. from wxauto import WeChat
  2. wx = WeChat()
  3. new = wx.GetNewFriends()

3:通过好友申请列表

  1. from wxauto import WeChat
  2. wx = WeChat()
  3. new = wx.GetNewFriends()
  4. # 获取第一个可接受的新好友对象
  5. new_friend1 = new[0] #没有就会报错,可以用try和while写一个无限循环来检测
  6. print(new_friend1.name) # 获取好友申请昵称
  7. # 张三
  8. print(new_friend1.msg) # 获取好友申请信息
  9. # 你好,我是xxx群的张三
  10. # 接受好友请求,并且添加备注“备注张三”、添加标签wxauto
  11. new_friend1.Accept(remark='备注张三', tags=['同事'])
  12. # 切换回聊天页面,添加后需要切换到聊天界面
  13. wx.SwitchToChat()

切换界面

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

定时发送

1:倒计时发送

  1. from wxauto import WeChat
  2. import time
  3. import datetime
  4. # 设定倒计时的时间
  5. countdown_time = "00:01:00"
  6. # 将倒计时时间转换为秒
  7. def time_to_seconds(timestr):
  8. hours, minutes, seconds = map(int, timestr.split(':'))
  9. return hours * 3600 + minutes * 60 + seconds
  10. # 获取当前时间
  11. current_time = datetime.datetime.now()
  12. # 计算倒计时结束的时间
  13. end_time = current_time + datetime.timedelta(seconds=time_to_seconds(countdown_time))
  14. # 持续检查当前时间,直到倒计时结束
  15. while True:
  16. current_time = datetime.datetime.now()
  17. remaining_time = end_time - current_time
  18. # 如果倒计时已经结束,发送消息并退出循环
  19. if remaining_time.total_seconds() <= 0:
  20. wx = WeChat()
  21. msg = 'hello, world!'
  22. who = '文件传输助手'
  23. wx.SendMsg(msg=msg, who=who)
  24. break
  25. # 打印剩余时间
  26. print(f"倒计时:{remaining_time.total_seconds()}秒")
  27. time.sleep(1)

2:准时发送

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/966276
推荐阅读
相关标签
  

闽ICP备14008679号