赞
踩
一个需求
需要利用Python+第三方库wxauto 用于微信上自动获取聊天信息,从而根据自己需求对信息自动进行二次处理,
比如自动回复,再比如自动发送文件或者其他。
--- 记录于2022年08月
--- 2024年2月再次测试可用
使用Python3的第三方库wxauto
, 它适用于Windows的微信客户端
官网: https://github.com/cluic/wxauto
*这篇是微信自动化工具开发系列的第六篇
对上面的第五篇进行了简单的扩展,对于多个关键词进行多个不同的回复
代码的主要功能:
Python自动根据微信群或者微信好友的信息自动回复(对于多个关键词进行多个不同的回复)
比如: 有人在群里发了
@223
,自动回复aaa
有人发了
@123
,自动回复bbb
raise LookupError('Find Control Timeout({}s): {}'.format(maxSearchSeconds, self.GetSearchPropertiesStr()))
LookupError: Find Control Timeout(10.0s): {Name: '输入', ControlType: EditControl}
wxauto.py
第145行self.EditMsg = self.UiaAPI.EditControl(Name='输入')
# self.EditMsg = self.UiaAPI.EditControl(Name='输入')
# 修改为了
self.EditMsg = self.UiaAPI.ButtonControl(Name='发送文件').GetParentControl().GetNextSiblingControl().GetFirstChildControl()
保存即可。
这边使用
wxauto
来进行开发,而不是itchat
,原因如下
itchat
都是之前的教程,
本质上是用的微信的网页端的接口来进行数据交互的。
如果你想要使用itchat
的代码的话,
https://wx.qq.com/
腾讯官方虽然没有正式的发表声明,但是你搜一下可以看到相关信息
大概从去年开始(时间不太确定),大部分微信账号都不可以继续登录微信网页端,只有少部分账号还可以登录。
原因未知。
itchat
的代码来学习运行下,如果登录失败,那么或许你可以尝试下wxauto
也就是这里所说的方法来运行下。
Windows 10
Python 3.8.10
Windows 10的微信客户端版本:3.9.9.43 (英文版本)
注:微信客户端中文版跟英文版都可以
没什么太大区别。
目前wxauto对wechat 3.9版本已支持,可以使用wechat 最新版本的
wechat 3.7 版本的安装包(可以网上寻找):https://wechat-for-windows.en.uptodown.com/windows/download
安装Python3的第三方库
wxauto
,具体步骤如下
官网: https://github.com/cluic/wxauto
在cmd窗口执行下面命令进行安装
wxauto
python3 --version
python3 -m pip uninstall wxauto
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.LoadMoreMessage()
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.LoadMoreMessage()
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
的使用,自己来写就可以了,博客后续也会基于这个系列继续更新。
欢迎点赞留言提出问题,方便的话 点赞收藏 关注下微信公众号
只是想要一个简单的微信处理工具来满足自己的需求的话
可以微信公众号留言或者私信留言,
发下你的具体需求,这边后续根据你的需求进行下二次开发
如有需求,可关注下博客左侧的微信公众号留言或者直接私信留言
前者可以几小时内及时回复
后者可能看的不及时,大概一天或者几天内有回复
除此之外,
目前支持对微信群信息进行二次数据挖掘获取有用信息,比如
1.配送群信息的出发地,到达地,货源等相关信息
2.兼职群信息的标题、内容、手机号等相关信息
具体根据实际需求来进行定制开发
可在个人主页看到 公众号 联系方式
如有问题 欢迎提出
如有疑问 欢迎留言
如有作用 欢迎点赞
如有失效 欢迎留言
2024年2月 可用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。