一个需求
需要利用Python+第三方库wxauto 用于微信上自动获取聊天信息,从而根据自己需求对信息自动进行二次处理,
比如自动回复,再比如自动发送文件或者其他。
--- 记录于2022年08月
--- 2023年1月再次测试可用
使用Python3的第三方库wxauto
, 它适用于Windows的微信客户端
官网: https://github.com/cluic/wxauto
*这篇是微信自动化工具开发系列的第六篇
对上面的第五篇进行了简单的扩展,对于多个关键词进行多个不同的回复
代码的主要功能:
Python自动根据微信群或者微信好友的信息自动回复(对于多个关键词进行多个不同的回复)
比如: 有人在群里发了
@223
,自动回复aaa
有人发了
@123
,自动回复bbb
注:wxauto.py里面的第252行进行修改,否则运行会报错
微信版本 3.7.5.23 更新导致的问题
需进行下面的修改来进行修复,修改第252行为:
copydata = COPYDICT[i].replace(b'
', key.encode()).replace(b'type="0"', b'type="3"')
这边使用
wxauto
来进行开发,而不是itchat
,原因如下
itchat
都是之前的教程,
本质上是用的微信的网页端的接口来进行数据交互的。
如果你想要使用itchat
的代码的话,
https://wx.qq.com/
腾讯官方虽然没有正式的发表声明,但是你搜一下可以看到相关信息
大概从去年开始(时间不太确定),大部分微信账号都不可以继续登录微信网页端,只有少部分账号还可以登录。
原因未知。
itchat
的代码来学习运行下,如果登录失败,那么或许你可以尝试下wxauto
也就是这里所说的方法来运行下。
Windows 10
Python 3.8.10
Windows 10的微信客户端版本:3.7.5.23 (中文版本)
注:微信客户端中文版跟英文版都可以
没什么太大区别。建议使用中文版本,英文版本现在微信更新后出现了Bug.
安装Python3的第三方库
wxauto
,具体步骤如下
官网: https://github.com/cluic/wxauto
在cmd窗口执行下面命令进行安装
wxauto
python3 --version
python3 -m pip install wxauto -i https://pypi.tuna.tsinghua.edu.cn/simple
wxauto
是否安装成功python3 -c "import wxauto; print(wxauto.VERSION)"
自己修改里面的配置
from wxauto import *
import time
# 获取当前微信客户端
wx = WeChat()
# 获取会话列表
wx.GetSessionList()
###############################
# 1、获取默认窗口聊天信息
###############################
def reply_message_if_send_key_word(user, key_word, reply_message):
# 默认是微信窗口当前选中的窗口
# 输出当前聊天窗口聊天消息
wx.ChatWith(user)
# 获取最近的聊天记录
#wx.LoadRecentMessage(1)
wx.LoadRecentMessage(1)
msgs = wx.GetAllMessage
message_value = [msg[1] for msg in msgs]
for index, msg in enumerate(msgs):
if msg[1] ==key_word:
print("*"*20)
if reply_message not in message_value[index:]:
print(f"收到关键词{key_word},将自动回复以下语句:{reply_message}")
wx.SendMsg(reply_message)
else:
print("上面已回复,不再进行自动回复,等待新的关键词")
print("*"*20)
#wx.SendMsg(reply_message)
if __name__ == '__main__':
user = '什么'
key_word = '@223'
reply_message = 'aaa'
reply_dict = {
'@223': 'aaa',
'@123': 'bbb',
}
while True:
for key_word, reply_message in reply_dict.items():
reply_message_if_send_key_word(user=user, key_word=key_word, reply_message=reply_message)
time.sleep(1)
注: 或者下面这个 这两个代码都可以用,功能没什么区别
main06.py
from wxauto import *
import time
# 获取当前微信客户端
wx = WeChat()
# 获取会话列表
wx.GetSessionList()
###############################
# 1、获取默认窗口聊天信息
###############################
def reply_message_if_send_key_word(user, reply_dict):
# 默认是微信窗口当前选中的窗口
# 输出当前聊天窗口聊天消息
wx.ChatWith(user)
# 获取最近的聊天记录
#wx.LoadRecentMessage(1)
wx.LoadRecentMessage(1)
msgs = wx.GetAllMessage
message_value = [msg[1] for msg in msgs]
key_words = [x for x in reply_dict.keys()]
for index, msg in enumerate(msgs):
if msg[1] in key_words:
print("*"*20)
reply_message = reply_dict[msg[1]]
if reply_message not in message_value[index:]:
print(f"收到关键词{key_word},将自动回复以下语句:{reply_message}")
wx.SendMsg(reply_message)
else:
print("上面已回复,不再进行自动回复,等待新的关键词")
print("*"*20)
#wx.SendMsg(reply_message)
if __name__ == '__main__':
user = '什么'
key_word = '@223'
reply_message = 'aaa'
reply_dict = {
key_word: reply_message,
}
# 多个特定字段对应多个不同的回复
reply_dict = {
'@223': 'aaa',
'@123': 'bbb',
}
while True:
reply_message_if_send_key_word(user=user, reply_dict=reply_dict)
time.sleep(2)
Settings
-> General
切换为中文)打开cmd窗口,在cmd窗口执行:
如果没有安装第三方库,参考上面的
安装
步骤进行安装再执行下面命令
cd E:\2022Python # 修改为你的 main06.py所在路径
python3 main06.py
cmd窗口输出结果为:
PS E:\2022Python> python3 main06.py
********************
收到关键词@223,将自动回复以下语句:bbb
********************
********************
上面已回复,不再进行自动回复,等待新的关键词
********************
********************
上面已回复,不再进行自动回复,等待新的关键词
********************
********************
上面已回复,不再进行自动回复,等待新的关键词
********************
********************
收到关键词@223,将自动回复以下语句:aaa
********************
********************
上面已回复,不再进行自动回复,等待新的关键词
********************
这边刚开始写一下系列文章,想发展下自己的博客和微信公众号账号
如果对你有帮助,方便的话可以关注下 博客左侧的微信公众号(点击我的头像进入个人中心,位于左侧下方)
如有问题的话,也可通过公众号直接留言,这边有微信提醒,可以几小时内及时回复
也可直接在CSDN博客留言或者私信留言,这个没有微信提醒,所以这边可能一天或者几天内给回复
微信公众号所在位置:打开
个人中心
也就是这个链接
https://blog.csdn.net/xiaozi_001?type=blog
左侧下方
如有需求,
想要对微信进行一些自动化操作来提高效率:
比如
自动群发不同聊天信息到几个微信群里
自动群发不同的图片到几个微信群里
自动群发不同的文件到几个微信群里
如果你本身懂代码的话, 直接看第三方库
wxauto
的使用,自己来写就可以了,博客后续也会基于这个系列继续更新。
欢迎点赞留言提出问题,方便的话 点赞收藏 关注下微信公众号
只是想要一个简单的微信处理工具来满足自己的需求的话
可以微信公众号留言或者私信留言,
发下你的具体需求,这边后续根据你的需求进行下二次开发
如有需求,可关注下博客左侧的微信公众号留言或者直接私信留言
前者可以几小时内及时回复
后者可能看的不及时,大概一天或者几天内有回复
如有问题 欢迎提出
如有疑问 欢迎留言
如有作用 欢迎点赞
如有失效 欢迎留言
2023年1月 可用