热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用Python,不到百行代码查看微信撤回消息!

微信在2014年推出的一个小小的新功能:撤回消息,使用此功能者提神醒脑、神清气爽,但被施用者却可能会抓耳挠腮、咬牙切齿的想知道你到底撤回了

微信在2014年推出的一个小小的新功能:撤回消息,使用此功能者提神醒脑、神清气爽,但被施用者却可能会抓耳挠腮、咬牙切齿的想知道你到底撤回了啥,这就是所谓的好奇害死猫(Curiosity kills the cat),今天我们就来用Python实现防微信消息撤回,满足一下大家的好奇心!

一、功能设计

我们希望当有好友或者群中有人撤回消息的时候,第一时间能把原消息、发送者信息转发到文件助手中(当然你也可以把消息发回给他,哈哈),这样方便我们查看。

给大家来演示一下实现的功能。

二、功能实现


1.微信撤回消息实现原理

我们先来了解一下微信撤回消息的原理:

其实微信撤回消息原理就是操作者在点击撤回的时候,客户端会自动发一条系统消息:“xxx撤回了一条消息”,然后对方app端收到消息后解析,替换原消息,改个显示的样式即可

给大家演示一下正常消息撤回消息的内容到底有什么区别:
正常消息:Content='你好骚啊',大家留意一下MsgId='8784390488772995470'

撤回消息:Content是一串xml格式的内容image

我们在下面把它格式化看看

xxx10903363648784390488772995470

分析上面撤回的Content字段我们发现8784390488772995470的id与我们之前发送消息的id是一致的,而这个标签也验证了我们的猜想,确实是用新消息替换原消息。Python资源分享秋秋裙 855408893 ,内有安装包,学习视频资料,免费直播实战案例。这里是Python学习者的聚集地,零

基础,进阶,都欢迎

2.找到被撤回消息

根据抓取正常消息撤回消息的内容我们发现规则:撤回消息中会包含之前被撤回的那条消息的msgid,那我们只要找到之前那条消息就可以了,而wxpy模块默认为我们缓存了最近的200条消息,所以我们只要遍历这些历史消息然后比较msgid就可以找到被撤回的那条消息啦!image

如果你微信消息太过频繁,2分钟之内消息数量超过200,则可以将max_history设置大些。

3.转发被撤回消息

原理也搞懂了,被撤回的消息也找到了,就差最后一步转发消息了,Python资源分享秋秋裙 855408893 ,内有安装包,学习视频资料,免费直播实战案例。这里是Python学习者的聚集地,零

基础,进阶,都欢迎
如果你之前玩过wxpy肯定会了吧,只要一行代码就可以将消息转发:

msg.forward(bot.file_helper)

4.代码

原理和过程讲完了,代码贴出来给大家看看,注释还是比较详细。

四、功能验证

三、总结

微信消息防撤回功能实现简单,但实用性很好,目前项目的唯一缺点就是易用性差,简单说就是我们还没有将项目部署服务器,每次使用都得打开电脑然后运行还得一直开着,猪哥考虑后面将项目部署在云服务器上或者打包成apk,这样就使用起来就非常方便了,而且还可以把apk发给朋友,让朋友也体验此功能!

学会这招,再也不用好奇对方到底撤回了啥消息,快试试吧!

wxpy官方文档:

https://wxpy.readthedocs.io/zh/latest


推荐阅读
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 该大学网站采用PHP和MySQL技术,在校内可免费访问某些外部收费资料数据库。为了方便学生校外访问,建议通过学校账号登录实现免费访问。具体方案可包括利用学校服务器作为代理,结合身份验证机制,确保合法用户在校外也能享受免费资源。 ... [详细]
  • 使用YUM命令的实用示例与详解
    本文详细介绍了使用YUM命令的实用示例,包括如何自定义YUM仓库、创建和配置自定义的repo文件,以及通过YUM命令安装HTTPD软件包的具体步骤。此外,还提供了相关命令的详细解释和常见问题的解决方案,帮助用户更好地理解和使用YUM工具。 ... [详细]
  • 当程序首次启动时,由于代码尚未加载到内存中,会触发大量的页面错误,从而需要从磁盘读取代码。那么,当程序终止后,这些二进制文件是否会继续驻留在内存中呢?本文将探讨程序退出后的内存状态及其对系统性能的影响。 ... [详细]
  • 深入探索HTTP协议的学习与实践
    在初次访问某个网站时,由于本地没有缓存,服务器会返回一个200状态码的响应,并在响应头中设置Etag和Last-Modified等缓存控制字段。这些字段用于后续请求时验证资源是否已更新,从而提高页面加载速度和减少带宽消耗。本文将深入探讨HTTP缓存机制及其在实际应用中的优化策略,帮助读者更好地理解和运用HTTP协议。 ... [详细]
  • 在Ubuntu系统中安装Android SDK的详细步骤及解决“Failed to fetch URL https://dlssl.google.com/”错误的方法
    在Ubuntu 11.10 x64系统中安装Android SDK的详细步骤,包括配置环境变量和解决“Failed to fetch URL https://dlssl.google.com/”错误的方法。本文详细介绍了如何在该系统上顺利安装并配置Android SDK,确保开发环境的稳定性和高效性。此外,还提供了解决网络连接问题的实用技巧,帮助用户克服常见的安装障碍。 ... [详细]
  • 如何安装和使用 WinSCP 与 PuTTY:连接 Linux 系统的专业工具指南
    本指南详细介绍了如何在Windows环境中安装和使用WinSCP与PuTTY,以实现与Linux系统的安全连接。WinSCP是一款开源的图形化SFTP客户端,支持SSH和SCP协议,主要用于在本地和远程计算机之间安全地传输文件。用户可以通过官方下载页面获取最新版本的WinSCP和PuTTY,按照简单的步骤完成安装,并利用这些工具进行高效的文件管理和远程操作。 ... [详细]
  • 利用ZFS和Gluster实现分布式存储系统的高效迁移与应用
    本文探讨了在Ubuntu 18.04系统中利用ZFS和Gluster文件系统实现分布式存储系统的高效迁移与应用。通过详细的技术分析和实践案例,展示了这两种文件系统在数据迁移、高可用性和性能优化方面的优势,为分布式存储系统的部署和管理提供了宝贵的参考。 ... [详细]
  • 在iOS开发中,基于HTTPS协议的安全网络请求实现至关重要。HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer)是一种旨在提供安全通信的HTTP扩展,通过SSL/TLS加密技术确保数据传输的安全性和隐私性。本文将详细介绍如何在iOS应用中实现安全的HTTPS网络请求,包括证书验证、SSL握手过程以及常见安全问题的解决方法。 ... [详细]
  • 解决针织难题:R语言编程技巧与常见错误分析 ... [详细]
  • 在 Vue 应用开发中,页面状态管理和跨页面数据传递是常见需求。本文将详细介绍 Vue Router 提供的两种有效方式,帮助开发者高效地实现页面间的数据交互与状态同步,同时分享一些最佳实践和注意事项。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • JavaScript XML操作实用工具类:XmlUtilsJS技巧与应用 ... [详细]
author-avatar
mobiledu2502930997
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有