当前位置:   article > 正文

wxauto实现自动发送微信信息

wxauto

目录

安装

获取信息

发送文字

单行信息

多行信息

发送文件

wxauto是Windows版本微信客户端自动化框架,可以实现简单的发送、接收、读取信息等。

在使用前必须登录微信客户端,且不能关闭微信客户端窗口,否则无法获取微信客户端信息。

安装

wxauto安装方式很简单,在终端执行如下代码即可:

pip install wxauto

获取信息

获取当前微信聊天窗口聊天代码如下:

  1. from wxauto import *
  2. wx = WeChat()    # 获取当前微信客户端
  3. msgs = wx.GetAllMessage   # 获取当前聊天窗口聊天消息
  4. for msg in msgs:
  5.     print(msg[0],msg[1])

获取到的微信聊天信息是以元组的方式存储,其中元组的第一个值为微信名,第二个值为微信聊天信息。

当我们想获取指定好友的微信信息时,可以使用Search()方法搜索指定好友并打开该好友的对话窗,再用GetAllMessage()方法获取当前聊天窗口的聊天信息,示例代码如下:

  1. from wxauto import *
  2. wx = WeChat()    # 获取当前微信客户端
  3. wx.Search('文件传输助手')  # 搜索指定好友
  4. msgs = wx.GetAllMessage   # 获取当前聊天窗口聊天消息
  5. for msg in msgs:
  6.     print(msg[0],msg[1])

注意:

  • 当搜索的微信昵称不完全匹配时,只会选取搜索框的第一个;

  • 只能获取已加载的聊天信息。

当我们想获取所有聊天信息时,可以LoadMoreMessage()方法滚动鼠标滚轮,加载更多聊天记录到内存,示例代码如下:

  1. from wxauto import *
  2. wx = WeChat()    # 获取当前微信客户端
  3. wx.LoadMoreMessage()   # 在聊天窗口中滚动鼠标滚轮
  4. msgs = wx.GetAllMessage   # 获取当前聊天窗口聊天消息
  5. for msg in msgs:
  6.     print(msg[0],msg[1])

这样就可以获取到更多聊天信息了。

发送文字

单行信息

发送单行信息示例代码如下:

  1. from wxauto import *
  2. wx = WeChat()     # 获取当前微信客户端
  3. msg = '你好~'        # 发送的内容
  4. who = '文件传输助手'     # 接收信息的微信好友昵称
  5. wx.ChatWith(who)     # 打开与接收信息的微信好友聊天对话框
  6. wx.SendMsg(msg)   # 发送信息

当当前会话列表中有你要发送信息的微信好友时,会直接定位到好友对话框再发送信息;

当当前会话列表中没有你要发送信息的微信好友时,会先向下滚动会话列表,若还是没有找到好友时,会在搜索框进行搜索。

注意:默认删除对话框原有的文字,当你想保留时,可以使用clear参数,示例代码如下:

  1. from wxauto import *
  2. wx = WeChat()     # 获取当前微信客户端
  3. msg = '你好~'        # 发送的内容
  4. who = '文件传输助手'     # 接收信息的微信好友昵称
  5. wx.ChatWith(who)     # 打开与接收信息的微信好友聊天对话框
  6. wx.SendMsg(msg,clear=False)   # 不清除原对话框原有文字

多行信息

当我们想发送多行信息时,可以使用WxUtils.SetClipboard()方法将需要发送的信息存储到剪贴板,再通过SendClipboard()方法将剪贴板的信息复制到聊天对话框并发送,示例代码如下:

  1. from wxauto import *
  2. wx = WeChat()   # 获取当前微信客户端
  3. msg = f'''你好
  4. 第二行
  5. 第三行
  6. 第四行'''
  7. who = '文件传输助手'  # 接收好友昵称
  8. wx.ChatWith(who)   # 打开与接收信息的微信好友聊天对话框
  9. WxUtils.SetClipboard(msg) # 将需要发送的信息存储到剪贴板
  10. wx.SendClipboard()    # 发送信息

发送文件

发送文件与发送文字类似,只是发送文件使用SendFiles(),示例代码如下:

  1. from wxauto import *
  2. wx = WeChat()
  3. file1 = f'E:/文件.xlsx'           # 需要发送的文件
  4. file2 = f'E:/文件2.xlsx'    
  5. who = '文件传输助手'    # 接收好友
  6. wx.ChatWith(i)
  7. wx.SendFiles(file1,file2)

当没有找到要发送的文件时,程序会自动终止运行,我们可以在SendFiles()方法中添加not_exists='ignore'代码,即使找不到文件也不终止程序。

注意:在程序运行时,不要随意移动鼠标,否则会有意想不到的惊喜!!!

公众号:白巧克力LIN

该公众号发布Python、数据库、Linux、Flask、自动化测试、Git、算法等相关文章!

- END -

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号