Python 实现还原已撤回的微信消息

月亮慢半拍
月亮慢半拍
发布时间:2026-10-13| 4人浏览过
原创

本文介绍如何使用 Python 脚本监控并还原微信中已撤回的消息。通过注册消息接收接口,程序将文字、图片、语音等多种类型的消息暂存至字典,并在检测到撤回指令时,自动将原始内容转发至文件传输助手。文章详细解析了群聊与私聊的消息处理逻辑、多类型消息的过滤机制以及异常处理方案,为技术爱好者提供完整的实现思路。

效果展示

效果展示

以下截图展示了被成功恢复的撤回消息类型,依次包括:纯文本消息、微信内置表情、图片文件、语音消息、地理位置定位、名片信息、公众号文章链接、音乐分享以及视频文件。这些消息既包含来自群聊的撤回记录,也包含个人聊天中的撤回内容。

图文来源:http://kks.me/aULmF

图文来源:http://kks.me/aULmF

程序核心思路

程序核心思路

该方案主要包含两个关键功能模块:

handler_receive_msg():负责监听并处理接收到的所有消息,将其临时存储在一个字典结构中。

send_msg_helper():当检测到消息被撤回时,自动将保存的原始消息内容发送给“文件传输助手”。

程序逻辑分析

程序逻辑分析

首先,我们需要定义一个字典变量用于存储消息数据,并指定消息缓存的临时存储路径。

接收信息处理流程

首先,使用 msg_register 装饰器注册需要处理的消息类型,并格式化获取本地时间戳,同时定义消息 ID 和发送时间。在处理群聊消息时,如果撤回消息的用户是自己的微信好友,系统会优先显示该用户的备注名称;若未设置备注,则显示其微信昵称。

程序会遍历获取所有群聊的消息记录,通过比对判断出撤回消息所属的具体群聊,并在输出中显示该群的名称。

个人消息处理逻辑

对于个人聊天场景,处理逻辑与群聊类似,优先显示好友的备注名称;若没有备注,则显示其微信昵称。

各类型消息的处理机制

通过条件判断语句对不同格式的消息进行分类处理,涵盖文字消息、微信内置表情、收藏表情、图片、语音、地理位置、名片、分享链接、附件文件以及视频。在涉及多条件判断时,代码采用了 Python 的 in 操作符来替代多个 or 连接,使代码结构更加简洁。这种写法有助于巩固之前关于 Python 优雅编程技巧的学习成果,通过项目实践不断提升编码能力。

信息字典更新机制

 

撤回消息处理流程

程序首先判断当前事件是否为消息撤回操作。如果是,则将之前函数中存储的消息数据(包括发送人、消息类型、发送时间以及具体的撤回内容)提取出来,并自动发送到你微信中的“文件传输助手”。以下是部分核心代码示例。

 

主函数运行方式

主函数运行方式

如果你的电脑已安装 Python 运行环境,可以直接在代码编辑器中运行源码,或在命令行(cmd)中执行 py 文件。源码获取方式已在文章末尾提供。未来该功能可以封装为图形界面工具并部署在服务器上。如果读者对开发此类界面化工具有需求,欢迎点赞反馈,以便评估开发优先级。

总结与优化建议

总结与优化建议

本次分享到此结束。目前仍需优化的部分包括:撤回的视频仅支持查看通过微信内置相机拍摄的视频,非微信内置相机拍摄的视频文件无法直接打开查看。此外,在程序长时间运行过程中,可能会偶尔出现 ConnectionError 连接错误提示,但这并不影响撤回消息的发送功能。后续计划增加异常捕获机制以进一步优化稳定性。

以上介绍的是利用 Python 实现还原微信已撤回消息的方法,希望能对大家有所帮助。如有任何疑问,欢迎留言,小编会及时回复。感谢大家对本站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。