赞
踩
太长不看:多运行几次含有wx.LoadMoreMessage(1)的代码,到顶后就可以一次获取所有数据
- from wxauto import *
-
- # 获取当前微信客户端
- wx = WeChat()
- # 获取会话列表
- wx.GetSessionList()
- who = 'Python相关接单群'
- # 打开聊天窗口
- wx.ChatWith(who)
-
- msgs = wx.GetAllMessage
- while msgs[0][0] == '查看更多消息':
- wx.LoadMoreMessage(1)
- msgs = wx.GetAllMessage
- print(f'总共有{len(msgs)}条')
-
- with open('output003.txt', 'w', encoding='utf=8') as file:
- for msg in msgs:
- file.write('%s : %s\n' % (msg[0], msg[1]))
- print(f'总共有{len(msgs)}条')
如果是以下代码,当前窗口的意思是当前窗口的缓存,刚开始登录进入聊天记录的时候处于最下面的一条,往上回溯消息记录,查看了几条消息,那么以下代码就会获取几条消息
- from wxauto import *
-
- # 获取当前微信客户端
- wx = WeChat()
- # 获取会话列表
- wx.GetSessionList()
- who = '好友名字或者群名'
- # 打开聊天窗口
- wx.ChatWith(who)
-
- # 输出当前聊天窗口聊天消息
- msgs = wx.GetAllMessage
- for msg in msgs:
- print('%s : %s'%(msg[0], msg[1]))
另一方面,以下代码会使得聊天界面向上滚动,但因为一些程序环境问题,程序会中断滚动并不会处于历史聊天记录的最顶端,也就是以下代码的实质是能滚动到何处,至这行起至最低下一行的聊天数据都可以获取。
- from wxauto import *
-
- # 获取当前微信客户端
- wx = WeChat()
- # 获取会话列表
- wx.GetSessionList()
- who = '好友名字或者群名'
- # 打开聊天窗口
- wx.ChatWith(who)
-
- # 此处加个1可以自动滑到所有聊天记录,如果不加就只滑动两次刷新
- # 实际情况复杂,测试后并不能一次获取所有数据
- wx.LoadMoreMessage(1)
-
- msgs = wx.GetAllMessage
- for msg in msgs:
- print('%s : %s'%(msg[0], msg[1]))
解决方法:多运行几次,当历史聊天记录滚动到最顶一行时就可以获取所有聊天记录:注意:因为情况复杂,通常运行一次程序并不能一次获取所有数据,需要多运行几次,当数据缓存完成,就可以一次获取所有数据
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。