python:介绍一个简单又好玩的软件包(wxauto微信消息处理)

wxauto (适用PC微信3.9.11.17版本)

这个包可以用于Windows版本微信客户端自动化,可实现简单的发送、接收微信消息、保存聊天图片等多种微信功能(本人代码新手匿名膜拜大佬)

原网页:Hello from wxauto | wxauto (loux.cc)

 (另外还有一个包是“itchat”,这个包是作用于网页版的微信,但是我在用这个包时,在登录环节扫码登录后会反复弹出新的二维码,暂时找不到解决方法,疑似网页版微信不可用)

实现:

这个包里的好玩的代码还是很多的,这次只介绍一下自动发消息和获取聊天窗口的消息

首先肯定是下载软件包“wxauto”

下载:

如果你想直接下载到本地环境,可以用win+R快速召唤cmd,进行下载

pip install wxauto

或者在pycharm里面直接下载

点击左侧工具栏里的python软件包的按钮输入wxauto进行安装

但是这个环节还是很容易出问题滴(因为我比较拉,所以在这遇到了问题(悲

首先,如果你用cmd下载,且代码编译器正好不是版本比较新的pycharm(例如VScode),那么没问题,用的时候直接调包就OK

那这个时候有人就要问了,那如果我用的就正好是最近的版本的pycharm呢?

诶!如果你用的pycharm版本比较新,在创建python文件时不做任何额外操作(例如配置自定义解释器)的话pycharm会自动帮你创建一个虚拟环境(.venv文件),此时你是无法调用本地环境的包的(在cmd里下载的为本地环境)

此时有四个解决办法:

1.简单粗暴法:在pycharm里直接下载(比较方便,但有时下载较慢,挂梯子好像会快一些?)

2.不嫌麻烦法:找到cmd中下载的包和包的路径,通常在python的Lib文件夹里的site_packages里,将要用到的包复制下来,在虚拟环境(.venv文件)的Lib文件里粘贴下来(比较麻烦,而且有时会在复制粘贴时少包)

3.另辟蹊径法:去学一学自定义配置解释器(应该不难,但我没学,不会)

4.弃暗投明法:放弃pycharm,用别的代码编译器 (个人推荐VScode,好用)


好了,下载完之后我们在打开并登录微信客户端之后,就可以着手写代码了

代码:

发送消息:

import wxauto
#调用wxauto包
wx = wxauto.WeChat()
#实例化对象,定义为wx
wx.SendMsg('你好,这条属于自动回复', '用户名')
#调用SendMsg方法

 是的,就这么简简单单三行代码(要不怎么说好用嘛)

SendMsg()方法比较重要的两个参数:msg(你要发送的信息,括号里第一个字符串)和who(你要发送消息的用户,括号里第二个字符串)

效果演示:

PS:鼠标指针是自动移动

如果你用的是遍历查找好友,那么代码应该如下:

import wxauto
wx = wxauto.WeChat()
target_friend = None
#定义一个变量用于存放好友
for friend in wx.GetAllFriends():
#遍历好友列表
    if friend['RemarkName'] == '好友备注':
        target_friend = friend
        break
if target_friend:
    wx.SendMsg('你好,这条属于自动回复',target_friend)
    print(f'消息发送成功')
else:
    print(f'出问题')

这个就比较有意思了,你的鼠标指针会点击你的通讯录,然后一直翻,直到找到目标用户
PS:该包兼容的微信版本为3.9.11.x版本,我的是3.9.12,可能是版本不兼容问题(大概率是别的问题),所以遍历代码会报错,说是找不到目标好友,所以不做演示了

获取消息:

import wxauto
wx = wxauto.WeChat()
wdwx = wx.GetAllMessage()
#获取全部消息
for msg in wdwx:
#遍历
    if msg.type == 'sys':
#判断消息类型
            print(f'【系统消息】{msg.content}')
#打印消息
    elif msg.type == 'self':
        print(f'{msg.sender.ljust(20)}:{msg.content}')
    elif msg.type == 'friend':
        sender = msg.sender  # 这里可以将msg.sender改为msg.sender_remark,获取备注名
        print(f'{sender.rjust(20)}:{msg.content}')
    else:
        print('非文本消息')

GetAllMessage方法用于加载缓存消息(可以这样说吗?就是不有加载就可以显示的消息

该方法获取文本类型消息时不用加参数,还有其他三个参数为

savepic:是否保存聊天图片,默认为False

savefile:是否保存聊天文件,默认为False

savevoice:是否保存聊天语音转文字内容,默认为False

另外还有LoadMoreMessage方法用于加载更多历史消息,需要配合GetAllMessage方法使用

先调用前者,再调用后者

效果演示:


该包还有非常多实用和有趣的玩法,比如设置监听给女朋友回复消息,在公司群或班级里回复“收到”,这里不再一一介绍和演示。

最后,在粘贴一遍原网站以表感谢:Hello from wxauto | wxauto (loux.cc)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值