赞
踩
一个需求
需要利用Python+第三方库wxauto 用于微信上自动获取聊天信息,从而根据自己需求对信息自动进行二次处理,
比如自动回复,再比如自动发送文件或者其他。
--- 记录于2022年07月
--- 2024年2月再次测试可用
使用Python3的第三方库wxauto
, 它适用于Windows的微信客户端
官网: https://github.com/cluic/wxauto
这篇是微信自动化工具开发系列的第二篇
代码的主要功能:
Python获取微信指定多个用户
的聊天信息
这边使用
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 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)"
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='输入')sss
# 修改为了
self.EditMsg = self.UiaAPI.ButtonControl(Name='发送文件').GetParentControl().GetNextSiblingControl().GetFirstChildControl()
保存即可。
这边第一篇只介绍获取默认窗口的聊天信息
from wxauto import *
# 获取当前微信客户端
wx = WeChat()
# 获取会话列表
wx.GetSessionList()
###############################
# 1、获取默认窗口聊天信息
###############################
def get_default_window_messages():
# 默认是微信窗口当前选中的窗口
# 输出当前聊天窗口聊天消息
msgs = wx.GetAllMessage
for msg in msgs:
print('%s : %s' % (msg[0], msg[1]))
## 获取更多聊天记录
wx.LoadMoreMessage()
msgs = wx.GetAllMessage
for msg in msgs:
print('%s : %s' % (msg[0], msg[1]))
###############################
# 2、获取指定窗口聊天信息
###############################
def get_window_messages_from_list(whos):
for who in whos:
print("************************************\n")
print("开始切换聊天窗口为:", who)
wx.ChatWith(who)
print("当前聊天窗口为:", who)
msgs = wx.GetAllMessage
for msg in msgs:
print('%s : %s' % (msg[0], msg[1]))
print("************************************\n")
if __name__ == '__main__':
# get_default_window_messages()
# 单个
whos = ['文件传输助手'] # 适用于中文版微信
# whos = ['File Transfer'] # 适用于 英文版微信
# 多个
# whos = ['文件传输助手', '你的微信好友备注' ] # 适用于中文版微信
get_window_messages_from_list(whos)
打开cmd窗口,在cmd窗口执行:
如果没有安装第三方库,参考上面的
安装
步骤进行安装再执行下面命令
cd 你的main02.py所在路径
python3 main02.py
cmd窗口
正常输出你单个好友或者多个好友的默认微信窗口的聊天信息
这边刚开始写一下系列文章,想发展下自己的博客和微信公众号账号
如果对你有帮助,方便的话可以关注下 博客左侧的微信公众号(点击我的头像进入个人中心,位于左侧下方)
如有问题的话,也可通过公众号直接留言,这边有微信提醒,可以几小时内及时回复
也可直接在CSDN博客留言或者私信留言,这个没有微信提醒,所以这边可能一天或者几天内给回复
微信公众号所在位置:打开
个人中心
也就是这个链接
https://blog.csdn.net/xiaozi_001?type=blog
左侧下方
如有需求,
想要对微信进行一些自动化操作来提高效率:
比如
自动群发不同聊天信息到几个微信群里
自动群发不同的图片到几个微信群里
自动群发不同的文件到几个微信群里
如果你本身懂代码的话, 直接看第三方库
wxauto
的使用,自己来写就可以了,博客后续也会基于这个系列继续更新。
欢迎点赞留言提出问题,方便的话 点赞收藏 关注下微信公众号
只是想要一个简单的微信处理工具来满足自己的需求的话
可以微信公众号留言或者私信留言,
发下你的具体需求,这边后续根据你的需求进行下二次开发
如有需求,可关注下博客左侧的微信公众号留言或者直接私信留言
前者可以几小时内及时回复
后者可能看的不及时,大概一天或者几天内有回复
除此之外,
目前支持对微信群信息进行二次数据挖掘获取有用信息,比如
1.配送群信息的出发地,到达地,货源等相关信息
2.兼职群信息的标题、内容、手机号等相关信息
具体根据实际需求来进行定制开发
可在个人主页看到 公众号 联系方式
如有问题 欢迎提出
如有疑问 欢迎留言
如有作用 欢迎点赞
如有失效 欢迎留言
2023年12月 可用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。