作者:啊锥、驿站
有些电商企业的退货退款场景会涉及到微信聊天记录,他们习惯让客服将拦截或退货消息发到厂家群里,然后在某个时间节点去统计所有的拦截和退货消息,再与已退货的数据做数据核对。
目前自定义指令里面只有获取个人微信聊天内容指令,不能直接提取到微信群指定日期的记录,不过我们可以通过搭建流程来实现这个需求。
- 核心功能:通过【获取个人微信聊天内容】指令实现抓取记录内容;
- 执行方式:通过在微信群聊天框模拟鼠标滚轮不断上滑来不断加载数据,再用【获取个人微信聊天内容】抓取到记录内容;
- 实现难点:
- 如何确定滚轮停止滚动时间:根据微信聊天记录加载情况来看,每次加载完通过指令获取到的第1条记录都会是日期,可以通过判断日期来做停止节点;
- 如何提取到指定天数的记录内容:【获取个人微信聊天内容】指令得到的结果是一个列表嵌套字典的格式,每个字典为一条信息,而且每天的第一条记录也为日期,可以通过定位第一条日期记录的方式来截取列表数据。

3.1 设定需要获取记录的日期,用于获取该日期至今日的所有记录,再获取微信窗口和指定群聊天界面,可通过【打开自定义对话框】指令设置;

3.2 通过模拟鼠标滚轮上滑加载数据,并获取聊天记录,重点在于需要先做日期格式的转化。

微信记录的显示日期格式有4种:xx年xx月xx日 yy:yy,星期x yy:yy,昨天 yy:yy,yy:yy。需要根据规律统一转换为日期格式,才能用于做判断。

因为微信加载数据时的日期不是固定的,可能是跨一天,可能是跨两天,所以只要确定第1天记录日期到当前日期的范围中涵盖有需求日期即可,后续再做筛选。

3.3 转化日期格式,用于定位指定日期的记录初始位置。

3.4 定位指定日期记录的初始位置,并做截取。

3.5 将结果写入Excel中。

- 微信版本为3.9.6.33,影刀版本为5.13.32(32位);
- 有些微信版本的聊天记录里面不显示“星期几”,而是显示“周几”;
- 测试时是截取指定日期到今日的记录内容,也可以在后面做一个截取动作,只获取指定日期一天的数据,需要通过定位指定日期后一天的时间来做截取;
- 也可以通过点开微信聊天记录框在聊天记录框里面抓取数据,目前无法直接点击到日期框里的指定日,所以得以循环+方向盘上键连按的方式上滑获取数据,该方式可能比较稳定且能获取到每条记录的时间,但是执行很慢。
最后,感谢驿站和可耐提供的灵感和建议,如果有其它方法的小伙伴可以一起沟通交流~