3步实现用Python防止微信消息撤回功能

微信图片防撤回 实际生活中,由于好奇朋友撤回的微信图片信息,但直接去要又怎会是我的性格呢。由此萌生出做一个微信防撤回程序(已向朋友说明)。当前网络上其实存在一些微信防撤回程序,不过担心不正规软件存在漏洞,泄漏个人信息,这里也就不考虑此种方法。 阅读详情

我们在使用微信时,如果发错消息,可以撤回,但你有没有想过在某些特殊情况下,防止对方撤回消息呢?今天我们就使用Python实现一下查看好友撤回的微信消息的功能。运行程序,手机端微信扫描弹出的二维码即可登录网页版微信,程序会将网页版微信收到的所有消息都缓存下来,当检测到有消息(语音、文字、图片等)撤回时,将撤回消息的缓存版本通过文件传输助手发送到自己的手机上,如下图所示。

实现微信消息防撤回功能主要通过Python内置的os模块、re模块、time模块、platform模块,以及第三方模块itchat实现。具体步骤如下:

(1)由于使用了第三方模块itchat,所以需要先安装该模块。使用pip命令安装模块的命令如下:

pip install itchat

(2)导入程序中需要使用的模块,具体代码如下:

import re

import os

import time

import itchat

import platform

from itchat.content import *

(3)实现逻辑。首先使用platform模块获取操作系统底层的数据,根据不同的操作系统传入不同的登录参数,登陆成功后,缓存接收到的所有信息并监听是否有消息撤回。代码如下:

import re

import os

import time

import itchat

import platform

from itchat.content import *

msg_info = {}

face_package = None

处理接收到的信息

@itchat.msg_register([TEXT, PICTURE, FRIENDS, CARD, MAP, SHARING, RECORDING, ATTACHMENT, VIDEO], isFriendChat=True, isMpChat=True)

def handle_rsg(msg):

**global** face\_package

# 接收消息的时间

msg\_time\_receive = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

# 发信人

**try**:

    msg\_from = itchat.search\_friends(userName\=msg\['FromUserName'\])\['NickName'\]

**except**:

    msg\_from = 'WeChat Official Accounts'

# 发信时间

msg\_time\_send = msg\['CreateTime'\]

# 信息ID

msg\_id = msg\['MsgId'\]

msg\_content = **None**

msg\_link = **None**

# 文本或者好友推荐

**if** msg\['Type'\] == 'Text' **or** msg\['Type'\] == 'Friends':

    msg\_content = msg\['Text'\]

    print('\[Text/Friends\]: %s' % msg\_content)

# 附件/视频/图片/语音

**elif** msg\['Type'\] == 'Attachment' **or** msg\['Type'\] == "Video" **or** msg\['Type'\] == 'Picture' **or** msg\['Type'\] == 'Recording':

    msg\_content = msg\['FileName'\]

    msg\['Text'\](str(msg\_content))

    print('\[Attachment/Video/Picture/Recording\]: %s' % msg\_content)

# 举一反三代码

# 位置信息

**elif** msg\['Type'\] == 'Map':

    x, y, location = re.search("<location x=**\\"**(.\*?)**\\"** y=**\\"**(.\*?)**\\"**.\*label=**\\"**(.\*?)**\\"**.\*", msg\['OriContent'\]).group(1, 2, 3)

    **if** location **is None**:

        msg\_content = r"纬度:" \+ x.\_\_str\_\_() + ", 经度:" \+ y.\_\_str\_\_()

    **else**:

        msg\_content = r"" \+ location

    print('\[Map\]: %s' % msg\_content)

# 分享的音乐/文章

**elif** msg\['Type'\] == 'Sharing':

    msg\_content = msg\['Text'\]

    msg\_link = msg\['Url'\]

    print('\[Sharing\]: %s' % msg\_content)

msg\_info.update(

        {

            msg\_id: {

                "msg\_from": msg\_from,

                "msg\_time\_send": msg\_time\_send,

                "msg\_time\_receive": msg\_time\_receive,

                "msg\_type": msg\["Type"\],

                "msg\_content": msg\_content,

                "msg\_link": msg\_link

            }

        }

    )

face\_package = msg\_content

监听是否有消息撤回

@itchat.msg_register(NOTE, isFriendChat=True, isGroupChat=True, isMpChat=True)

def monitor(msg):

**if** '撤回了一条消息' **in** msg\['Content'\]:

    recall\_msg\_id = re.search("\\<msgid\\>(.\*?)\\<\\/msgid\\>", msg\['Content'\]).group(1)

    recall\_msg = msg\_info.get(recall\_msg\_id)

    print('\[Recall\]: %s' % recall\_msg)

    # 表情包

    **if** len(recall\_msg\_id) < 11:

        itchat.send\_file(face\_package, toUserName\='filehelper')

    **else**:

        msg\_prime = '---' \+ recall\_msg.get('msg\_from') + '撤回了一条消息\---**\\n**' \\

                    '消息类型:' \+ recall\_msg.get('msg\_type') + '**\\n**' \\

                    '时间:' \+ recall\_msg.get('msg\_time\_receive') + '**\\n**' \\

                    '内容:' \+ recall\_msg.get('msg\_content')

        **if** recall\_msg\['msg\_type'\] == 'Sharing':

            msg\_prime += '**\\n**链接:' \+ recall\_msg.get('msg\_link')

        itchat.send\_msg(msg\_prime, toUserName\='filehelper')

        **if** recall\_msg\['msg\_type'\] == 'Attachment' **or** recall\_msg\['msg\_type'\] == "Video" **or** recall\_msg\['msg\_type'\] == 'Picture' **or** recall\_msg\['msg\_type'\] == 'Recording':

            file = '@fil@%s' % (recall\_msg\['msg\_content'\])

            itchat.send(msg\=file, toUserName\='filehelper')

            os.remove(recall\_msg\['msg\_content'\])

        msg\_info.pop(recall\_msg\_id)

if __name__ == ‘__main__’:

**if** platform.platform()\[:7\] == 'Windows':

    itchat.auto\_login(enableCmdQR\=**False**, hotReload\=**True**)

**else**:

    itchat.auto\_login(enableCmdQR\=**True**, hotReload\=**True**)

itchat.run()

以上就是“3步实现用Python防止微信消息撤回功能”的全部内容,希望对你有所帮助。
​
​关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至优快云官方,朋友如果需要可以直接微信扫描下方优快云官方认证二维码免费领取【保证100%免费】。

【Python写微信防撤回脚本】 锁定被撤回的消息 Python有很多好用好玩的库,可以慢慢发掘。本期我们利用ItChat库编写了一个微信防撤回脚本。其实ItChat功能远远不止这些,它还可以处理微信群消息以及各种其他类型的消息,我们讲到的只是九牛一毛,更多的还要大家自己去探索。这个系列就到此为止了,如果有想要了解交流的可以在主页联系我。大家有什么想了解的,或者有什么想做的也可以在文章后面留言,后面说不定就会做了哦~ 阅读详情

相关推荐

2020年最新的Python操控微信教程

自从微信禁止网页版登陆之后,itchat 库实现的功能也就都不能用了,那现在 Python 还能操作微信吗?答案是还可以。 目前有一个项目WechatPCAPI可以对微信进行操作,简单来说它是直接操作 PC 版微信客户端的,当然它有一定不足之处就是:PC 版微信客户端和 Python 都需要使用指定版本的,本文我们使用的 Python 版本为3.7.6,微信客户端使用版本为2....

Python学习Q群696455390 6885

3步实现用Python防止微信消息撤回功能!

运行程序,手机端微信扫描弹出的二维码即可登录网页版微信,程序会将网页版微信收到的所有消息都缓存下来,当检测到有消息(语音、文字、图片等)撤回时,将撤回消息的缓存版本通过文件传输助手发送到自己的手机上,如下图所示。

xiaoganbuaiuk的博客 3547

【Python实现】微信防撤回

1.前言 他总是微信撤回,是有什么东西不能给我看吗?我得想一个法子治治他,看看是不是在外面有人了,哈哈哈…资料点我、点我、点我 2 有微信联想起的哲思 2.1 哲学思维开始冒头 在这个信息量大增的信息时代,每天脑袋要处理很大的信息量,还是需要了解一点底层逻辑。 你看中国的名家,它甚至把的问题基本都提到了,也就是中国在前神学时代,它压制不住人类思维向高层开,所以它的神学思脉、哲学思脉都不断地要冒头,但最终部没有冒成典型状态而是一个滞碍状态。 2.2 哲学期 再下来哲学期,叫理性思辨淬炼,奠基科学前瞻。它兴起

m0_67354902的博客 2400

微信防撤回功能

先查看一下微信的版本:微信左下角-->三个杠-->设置-->关于微信 比如我这里是3.9.12.15版本

2202_75361164的博客 1645

手把手教您安装2024最新版微信消息防撤回插件

手把手教您安装2024最新版微信消息防撤回插件

XiaoqiangClub的博客 5778

PC版微信防撤回版

PC版微信防撤回版,对方撤回的消息仍然会显示在消息列表中

Python3爬虫查看微信撤回消息

根据抓取正常消息和撤回消息的内容我们发现规则:撤回消息中会包含之前被撤回的那条消息的msgid,那我们只要找到之前那条消息就可以了,而wxpy模块默认为我们缓存了最近的200条消息,所以我们只要遍历这些历史消息然后比较msgid就可以找到被撤回的那条消息啦!思路比较简单,利用itchat模块登录网页版微信,将自己微信收到的所有消息都缓存下来,当检测到有消息撤回时,将撤回消息的缓存版本通过文件传输助手发送到自己的手机上。原理和过程讲完了,代码贴出来给大家看看,注释还是比较详细,有不懂得话可以在学习群中问我。

m0_67373485的博客 1279

最新版的微信防撤回文件

只需要替换微信软件里对应的文件即可

微信助手插件功能七:消息防撤回

微信助手插件推出“消息防撤回”功能,可拦截对方撤回的文字、表情等消息并保留原始内容。开启后,即使对方撤回消息,用户仍可查看,适用于追回漏看消息或保存完整记录的场景。该功能通过插件设置一键启用,但仅支持基础消息类型,且存在封号风险。作者强调需合理使用,避免侵犯隐私。插件提供演示效果图,并提醒用户下载后24小时内删除,遵守使用规范。(150字)

分享 Windows 系统部署、镜像封装、终端管理、故障排查与运维自动化实践,涵盖 Sysinternals、PowerShell 和 AI 工具应用。记录真实问题、探索过程与解决方法,也分享 AI 时代的学习心得和实践经验,让技术更易理解 3万+

告别踩坑!S32K3xx芯片上RTD-SDK的DFLASH与FEE模块配置全流程(基于S32DS)

本文详细解析了在NXP S32K3xx系列MCU上配置RTD-SDK的DFLASH与FEE模块的全流程,基于S32DS开发环境。从Cache配置、Mem_43_InFls模块设置到MemAcc模块的三种调用模式,提供了实战代码示例和常见问题排查表,帮助开发者高效完成存储管理配置,避免常见错误。

weixin_42653691的博客 269

本地化搭建DeepSeek+RAGFlow,构建个人知识库

本地化搭建DeepSeek+RAGFlow,构建个人知识库。至少32G以上内存、500G以上空余磁盘空间。

gogospecter的专栏 7428

如何用Python实现微信防撤回

一、背景介绍 产品的更新迭代必然会伴随着功能的推出和下线,今天我们要讲的便是微信在2014年推出的一个小小的新功能:撤回消息,使用此功能者提神醒脑、神清气爽,但被施用者却可能会抓耳挠腮、咬牙切齿的想知道你到底撤回了啥,这就是所谓的好奇害死猫(Curiosity kills the cat),今天我们就来用Python实现防微信消息撤回,满足一下大家的好奇心! 二、功能设计 我们希望当有好友或者...

wanghao112956的博客 750

Emuelec系统安装全流程:超详细版指南(从零开始)

手把手带你完成emuelec系统的完整安装,从基础准备到系统配置一步不落,适合新手入门。深入解析emuelec在各类设备上的部署技巧,让复古游戏体验更流畅。

weixin_42594419的博客 1972

再也不用担心女神撤回消息了!教你用Python实现微信防撤回

大家在使用微信过程中,有时候消息还没看到,就被撤回了。毕竟好奇心大家都有,明知到消息被撤回了,就更想去看一下是什么内容,心里想着万一是女神给我表白了呢..今天就用Python来做个微信防撤回的小功能。支持文本、图片、语音、视频、名片的防撤回。 前提 昨天在群里,看到小伙伴发了一个 ”不可描述“ 的图片,我刚准备点开看,就发现TA撤回了,该死的撤回。看我怎么整治你。 准备工作 ...

python学习+VX:YYQX2209 1418

Autosar PWM模块的配置和使用

在上面的代码中,我们首先配置了PWM的初始化参数,包括频率和分辨率。GPIO Driver:由于PWM信号需要输出到特定的引脚上,因此我们还需要使用GPIO驱动程序来控制引脚的状态。通过合理配置和应用PWM模块,我们可以实现对汽车电子系统中各种功能的精确控制,从而提高汽车性能和用户体验。在实际应用中,我们可以根据需要进行更多的配置和调整,以实现灵活的PWM控制。PWM Driver:这是主要的PWM驱动程序,负责产生PWM信号并输出到相应的引脚上。接下来,我们需要配置PWM模块的参数。

TcData的博客 682

让 ABAP Screen Variant 安稳上车:SHD0 与 SHD0_MANDT 的 Transport 全攻略

摘要: SAP项目常需优化交易码界面,通过SHD0的Transaction Variant和Screen Variant可实现字段精简、默认值预设及权限控制,避免修改标准代码。但跨系统迁移时易出现变式丢失或版本兼容问题。核心概念包括: Screen Variant:针对单个屏幕的字段属性配置(跨Client); Transaction Variant:串联多屏幕变式(分跨Client和Client-specific); 版本差异:4.70/6.x后需区分SHD0(跨Client)与SHD0_MANDT(Cl

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 226

python wxpy 微信消息防撤回脚本

使用了sqlite3保存数据,当有人撤回消息时取出数据发送到文件传输助手。 文件的话会先保存到本地,语音会以文件的方式发送。 wxpy 和 itchat很久没更新了,有些功能没法用了,web微信也不知道什么时候会凉。 帮助信息在注释里。 # -*- coding: utf-8 -*- # 使用sqlite3保存message,当有人撤回消息时在数据库中通过ID检索该消息是否存在,如果存...

babaili_的博客 1599

Node-RED系列(二九):使用slider与chart节点来实现双折线时间序列图

今天教使用dashboard的chart组件和slider组件来是实现一个双线的折线图。效果如下 拖动顶部的电量和水量,低下的图表会实时显示时间和值之所以做这个模拟案例,是将教 大家使用chart节点和slider节点先说一下slider节点,该节点是一个滑块节点,可以接受上一节点的 msg.payload,作为滑块的值, slider必须设置最大值和最小值。且不能动态设置。 此外当用户拖动slider滑块,改变值时,该节点会向下传递当前值 以属性payload装载。在说一下chart节点,该节点可以用于

知无涯 4968

Python实现微信防撤回

这是涛哥给你推荐的第27篇好文来源:裸睡的猪|作者:猪哥微信(WeChat)是腾讯公司于2011年1月21日推出的一款社交软件,8年时间微信做到日活10亿,日消息量45...

涛哥聊Python 370

YOLO11涨点优化:loss优化 | 一种新的基于Wasserstein距离的小目标检测评估方法,助力小目标涨点

提出了一种新的基于Wasserstein距离的小目标检测评估方法,通过它们对应的高斯分布计算它们之间的相似性

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1018

DTI-ALPS 指标计算(附代码),评估脑类淋巴系统功能

DTI-ALPS 指标计算(附代码),评估脑类淋巴系统功能

xxx 1051

python微信版防撤回_python实现微信消息防撤回-Go语言中文社区

微信(WeChat)是腾讯公司于2011年1月21日推出的一款社交软件,8年时间微信做到日活10亿,日消息量450亿。在此期间微信也推出了不少的功能如:“摇一摇”、“漂流瓶”、“朋友圈”、“附近的人”、“公众平台”、“小程序”等等,涵盖了我们生活的方方面面,微信正在慢慢践行着他们的口号:微信,是一个生活方式一、背景介绍产品的更新迭代必然会伴随着功能的推出和下线,今天我们要讲的便是微信在2014年推...

weixin_39726873的博客 126

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

微信防撤回python_python使用wxpy实现微信消息防撤回脚本

本文实例为大家分享了python实现微信消息防撤回的具体代码,供大家参考,具体内容如下使用了sqlite3保存数据,当有人撤回消息时取出数据发送到文件传输助手。文件的话会先保存到本地,语音会以文件的方式发送。wxpy 和 itchat很久没更新了,有些功能没法用了,web微信也不知道什么时候会凉。帮助信息在注释里。# -*- coding: utf-8 -*-# 使用sqlite3保存messag...

weixin_39551188的博客 199

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

用python实现微信消息防撤回

# -*- coding: utf-8 -*- # @Time : 7/8/18 下午8:01 # @Author : debin.lin # @File : wechat_response.py # @Software: PyCharm # @Mail : debin.lin@139.com import os import re import time import itchat f...

林不肯的博客 3397

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: 用Python制作各种用途的二维码
下一篇: Python制作进度条,原来有这么多方法
壹只小小码农
博客等级 码龄5年 8101粉丝 1334原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值