如何用Python查看微信好友撤回的消息?

利用Python查看微信好友撤回的消息 效果图如下: 不仅可以查看微信好友撤回的文字消息,如位置、视频、音频、图片等等都可以查看。 直接上源代码: # Python查看微信撤回消息 import re import os import time import itchat import platform from itchat.content import TEXT from itchat.content import *... 阅读详情

一、pip Install itchat

既然都用python解决问题了,第一步当然是明确用什么库啦,直接执行pip install itchat:

在这里插入图片描述

👌 done!

二、itchat.login()

下完了库,就得试下库的最入门用法啦,啦啦啦:

在这里插入图片描述

但没想到,复现到这一步时就出问题了。直接用itchat库像上面这样操作,登陆的会是微信的网页版,而腾讯之前为了防止大家用计算机自动化操作微信从而可能会导致一些安全问题,封停了网页版微信API,如果只是像上面这样做的话,控制台会提醒说“由于安全原因,此微信号不能使用网页版微信。你可以使用+Windows+版微信或+Mac+版微信登录。”

ok,男人要有耐心,遇事心平气和,google+知乎,若没试过七七四十九种解决方案,万不可直接考虑砸电脑。

很好,经过几次试错以后,找到一种简单便捷的解决方案:

在这里插入图片描述

很好,如上操作完,登陆成功!哦耶✌️!

三、itchat.search_friends() + send()

很好,登陆成功,来试着给好友发条消息?

我大概执行了下面这样的代码:

在这里插入图片描述

执行结果:

在这里插入图片描述

很好,发送成功!

四、@itchat.msg_register()

接下来我们要监听一下好友发送的消息,尝试在本机执行参考文档中的这段代码:

图片

在我本机复现的效果,没毛病,效果杠杠的,发啥我都能在控制台监听到了,嘿嘿嘿:

在这里插入图片描述

五、def reserver_info(msg)

接下来我们来复现下面👇这一段:

、在这里插入图片描述

我本机上的情况(抄的我好开心啊[捂脸]):

在这里插入图片描述

六、@itchat.msg_register([TEXT, PICTURE, RECORDING])

上面完成了对于文字内容的监听,接下来要感受一下图片、语音什么的如何处理了。

尝试复现下面的代码:

在这里插入图片描述

本机复现成功,结果我就先不放了,不然又得打码,好麻烦[捂脸]

原文中对于图片格式和音频格式的讲解:

在这里插入图片描述

七、os.mkdir() + info()

我们现在牵扯到应该怎么存储图片和语音信息了。

而我接下来继续的行为,低情商的说法叫:继续抄;高情商的说法:人家代码的可复用性好高。

在本机复现这段代码:

在这里插入图片描述

执行结果:

在这里插入图片描述

是python就是这么容易顺利执行,让人感觉枯燥且乏味吗?Hhh,当年劳资要是想用别人的C++的代码,没个取经的精神,过上那么九九八十一难是绝对调不通滴呀,再一次,手动捂脸:[捂脸]

八、note_info(msg)

现在我们能够存储聊天信息了,就是既然是要做防撤回软件,我们应该只需要存那些撤回了的信息,那么靠什么来判别哪些信息是撤回消息呢?Content模块为我们提供了NOTE类型,该类型指的是系统消息:

在这里插入图片描述

好,我们继续在本地复现上面的程序:

图片

复现成功,枯燥。

九、完整程序代码

最后就是完整程序的代码:

import itchat
from itchat.content import *
import os
import time
import xml.dom.minidom    # 解析xml模块

# 这是保存撤回消息的文件目录(如:图片、语音等),这里已经写死了,大家可以自行修改
temp = '/Users/yourname/Documents/itchat' + '/' + '撤回的消息'
if not os.path.exists(temp):
    os.mkdir(temp)

itchat.auto_login(True)    # 自动登录

dict = {}    # 定义一个字典


# 这是一个装饰器,给下面的函数添加新功能
# 能够捕获好友发送的消息,并传递给函数参数msg
@itchat.msg_register([TEXT, PICTURE, FRIENDS, CARD, MAP, SHARING, RECORDING, ATTACHMENT, VIDEO])  # 文本,语音,图片
def resever_info(msg):
    global dict    # 声明全局变量

    info = msg['Text']  # 取出消息内容
    msgId = msg['MsgId']  # 取出消息标识
    info_type = msg['Type']  # 取出消息类型
    name = msg['FileName']  # 取出消息文件名
    # 取出消息发送者标识并从好友列表中检索
    fromUser = itchat.search_friends(userName=msg['FromUserName'])['NickName']
    ticks = msg['CreateTime']  # 获取信息发送的时间
    time_local = time.localtime(ticks)
    dt = time.strftime("%Y-%m-%d %H:%M:%S", time_local)  # 格式化日期
    # 将消息标识和消息内容添加到字典
    # 每一条消息的唯一标识作为键,消息的具体信息作为值,也是一个字典
    dict[msgId] = {"info": info, "info_type": info_type, "name": name, "fromUser": fromUser, "dt": dt}


@itchat.msg_register(NOTE)  # 监听系统提示
def note_info(msg):
    # 监听到好友撤回了一条消息
    if '撤回了一条消息' in msg['Text']:
        # 获取系统消息中的Content结点值
        content = msg['Content']
        # Content值为xml,解析xml
        doc = xml.dom.minidom.parseString(content)
        # 取出msgid标签的值
        result = doc.getElementsByTagName("msgid")
        # 该msgId就是撤回的消息标识,通过它可以在字典中找到撤回的消息信息
        msgId = result[0].childNodes[0].nodeValue
        # 从字典中取出对应消息标识的消息类型
        msg_type = dict[msgId]['info_type']
        if msg_type == 'Recording':    # 撤回的消息为语音
            recording_info = dict[msgId]['info']  # 取出消息标识对应的消息内容
            info_name = dict[msgId]['name'] # 取出消息文件名
            fromUser = dict[msgId]['fromUser'] # 取出发送者
            dt = dict[msgId]['dt'] # 取出发送时间
            recording_info(temp + '/' + info_name) # 保存语音
            # 拼接提示消息
            send_msg = '【发送人:】' + fromUser + '\n' + '发送时间:' + dt + '\n' + '撤回了一条语音'
            itchat.send(send_msg, 'filehelper') # 将提示消息发送给文件助手
            # 发送保存的语音
            itchat.send_file(temp + '/' + info_name, 'filehelper')
            del dict[msgId] # 删除字典中对应的消息
            print("保存语音")
        elif msg_type == 'Text':
            text_info = dict[msgId]['info'] # 取出消息标识对应的消息内容
            fromUser = dict[msgId]['fromUser'] # 取出发送者
            dt = dict[msgId]['dt'] # 取出发送时间
            # 拼接提示消息
            send_msg = '【发送人:】' + fromUser + '\n' + '发送时间:' + dt + '\n' + '撤回内容:' + text_info
            # 将提示消息发送给文件助手
            itchat.send(send_msg, 'filehelper')
            del dict[msgId] # 删除字典中对应的消息
            print("保存文本")
        elif msg_type == 'Picture':
            picture_info = dict[msgId]['info'] # 取出消息标识对应的消息内容
            fromUser = dict[msgId]['fromUser'] # 取出发送者
            dt = dict[msgId]['dt'] # 取出发送时间
            info_name = dict[msgId]['name'] # 取出文件名
            picture_info(temp + '/' + info_name) # 保存图片
            # 拼接提示消息
            send_msg = '【发送人:】' + fromUser + '\n' + '发送时间:' + dt + '\n' + '撤回了一张图片'
            itchat.send(send_msg, 'filehelper') # 将图片发送给文件助手
            # 发送保存的语音
            itchat.send_file(temp + '/' + info_name, 'filehelper')
            del dict[msgId] # 删除字典中对应的消息 
            print("保存图片")


itchat.run()

运行结果:
在这里插入图片描述

教你如何用Python查看微信好友撤回的消息 直接用itchat库像上面这样操作,登陆的会是微信的网页版,而腾讯之前为了防止大家用计算机自动化操作微信从而可能会导致一些安全问题,封停了网页版微信API,如果只是像上面这样做的话,控制台会提醒说“由于安全原因,此微信号不能使用网页版微信。现在我们能够存储聊天信息了,就是既然是要做防撤回软件,我们应该只需要存那些撤回了的信息,那么靠什么来判别哪些信息是撤回消息呢?Hhh,当年劳资要是想用别人的C++的代码,没个取经的精神,过上那么九九八十一难是绝对调不通滴呀。而我接下来继续的行为,低情商的说法叫:继续抄; 阅读详情

相关推荐

怎么用Python找回微信撤回信息

需要注意的是,微信官方并没有开放撤回消息的API,所以通过以上方法只能实时获取到接收到的消息,无法直接找回已经撤回的消息。通过运行以上代码,你可以实现监控微信个人号的消息,并在有消息撤回时获取被撤回的消息内容。使用第三方库或工具进行微信操作,特别是频繁调用或使用非官方方式进行操作,可能违反微信的使用规则,导致账号被封禁。因此,通过第三方库或工具进行消息监控只能实时获取到接收到的消息,不能保证完全找回已经撤回的消息。在使用之前,请确保所选择的第三方库与你的微信版本兼容,以避免不必要的兼容性问题。

这家伙很懒,什么都没有留下 1290

使用Python实现微信自动回复,操作简单,小白也会使用!秒回女朋友消息 泰裤辣!

通过以上代码和教程,我们可以实现微信自动回复的功能。可以根据自己的需求,使用正则表达式匹配关键词或使用图灵机器人API实现智能回复。

weixin_45841831的博客 1万+

融合ZILN损失与深度学习的LTV预测:从概率分布到精准营销决策

本文探讨了融合ZILN损失与深度学习的LTV预测方法,通过深度概率模型精准预测用户生命周期价值(LTV),优化营销决策。文章详细解析了ZILN损失函数的优势、模型架构设计要点及工程化落地实践,帮助企业在预算分配、用户分层等场景实现数据驱动的精准营销。

weixin_29093169的博客 308

想查看微信好友撤回的消息?Python帮你搞定

要说微信最让人恶心的发明,消息撤回绝对能上榜。 比如你现在正和女朋友用微信聊着天,或者跟自己喜欢的女孩子聊着天,一个不留神,你没注意到对方发的消息就被她及时撤回了,这时你很好奇,好奇她到底发了什么?于是你打算问问她发了什么,结果她回一句"没什么"。这一回复,让你的好奇心更加强烈了,顿时就感觉消息撤回这一功能就是用来折磨人的。 那么有没有什么办法能够知道你心爱的她(他)到底撤回了什么呢?不要着急,P...

qq_35382207的博客 807

中国传媒大学计算机考研初复试经验贴

中传的计算机专业考研的话主要分为两大学院:计网学院和国重,大部分专业在计网学院。

DoKiDoK的博客 1559

三维视觉智能焊接系统:免示教技术的工业应用实践

本文深入探讨了三维视觉智能焊接系统中免示教技术的工业应用实践。该系统通过三维视觉相机实时扫描工件,自动识别焊缝并生成轨迹,将产线换型时间从数小时缩短至几分钟,显著提升了生产柔性。文章详细解析了其核心硬件、算法及工厂部署流程,并展望了与数字孪生、工艺智能化融合的未来趋势。

weixin_29091105的博客 431

Python微信库: itchat

http://www.nulll.me/index.php/archives/72.html?utm_source=tuicool&utm_medium=referral 在论坛上看到了用Python登录微信并实现自动签到,才了解到一个新的Python库: itchat 库文档说明链接在这: itchat 我存个档在我网站(主要是我打开很慢),以便以后阅读。 0x01

★匆匆★的专栏 1万+

暗黑破坏神2重制版 mod制作教程(一)

暗黑2重制版mod修改教程

hhhh2312的博客 7449

python查看微信撤回消息_Python查看微信好友撤回的消息

公众号:Charles的皮卡丘作者:Charles开发工具:Python版本:3.6.4相关模块:itchat模块;以及一些Python自带的模块。环境搭建:安装Python并添加到环境变量,pip安装需要的相关模块即可。原理简介:思路比较简单,利用itchat模块登录网页版微信,将自己微信收到的所有消息都缓存下来,当检测到有消息撤回时,将撤回消息的缓存版本通过文件传输助手发送到自己的手机上。因此...

weixin_39751769的博客 686

机器人全局路线规划导读

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对全局路线规划导读做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 1504

【学术情报智库】目录学的数字化蜕变:从古籍整理到AI知识图谱的跨越

我们既是浩瀚知识的守望者,也是数字智识的开拓者。目录学数字化不是技术替代传统,而是融合创新,让学术的系统性与多样性在新媒介下焕发新的生命。以AI为桥,既要智能链接,也要人文关照——这是对自我文明的深情回应,也是新知时代的庄严约定。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1420

python查看微信撤回消息_想查看微信好友撤回的消息?Python帮你搞定

要说微信最让人恶心的发明,消息撤回绝对能上榜。比如你现在正和女朋友用微信聊着天,或者跟自己喜欢的女孩子聊着天,一个不留神,你没注意到对方发的消息就被她及时撤回了,这时你很好奇,好奇她到底发了什么?于是你打算问问她发了什么,结果她回一句"没什么"。这一回复,让你的好奇心更加强烈了,顿时就感觉消息撤回这一功能就是用来折磨人的。那么有没有什么办法能够知道你心爱的她(他)到底撤回了什么呢?不要着急,Pyt...

weixin_39756895的博客 297

【WRF理论第十五期】WPS中输入geogrid二进制格式

WPS中输入geogrid二进制格式

WW、forever的博客 1078

Python查看微信好友撤回的消息

公众号:Charles的皮卡丘作者:Charles 开发工具:Python版本:3.6.4相关模块:itchat模块;以及一些Python自带的模块。 环境搭建:安装Python并添加到环境变量,pip安装需要的相关模块即可。 原理简介:思路比较简单,利用itchat模块登录网页版微信,将自己微信收到的所有消息都缓存下来,当检测到有消息撤...

weixin_33753845的博客 396

MATLAB与ROS联合仿真——实例程序搭建思路

MATLAB与ROS联合仿真——实例程序搭建思路

慕羽★的博客 5227

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

教你如何用Python查看微信好友撤回的消息_linux 使用python查看撤回的消息(1)

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。现在我们能够存储聊天信息了,就是既然是要做防撤回软件,我们应该只需要存那些撤回了的信息,那么靠什么来判别哪些信息是撤回消息呢?Hhh,当年劳资要是想用别人的C++的代码,没个取经的精神,过上那么九九八十一难是绝对调不通滴呀。

m0_55030688的博客 590

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Python 技术篇-利用itchat微信机器人查看好友已撤回消息实例演示!

Python 技术篇-利用itchat微信机器人查看好友已撤回消息实例演示! 原理很简单,每一条消息都是有id的,我们把所有消息都存储在dict字典里,就存储id和对应的消息内容。 `itchat.content.TEXT`:消息 `itchat.content.NOTE`:通知 撤回消息就属于通知了,每次有通知,我们都检测一下,如果是撤回消息,就把撤回的消息发送出去。return就是在哪个聊天框里检测到,发送到那里。 当然我们有点不足之处就是如果消息存储过多的话,会占用我们的很多的内存。

小蓝枣的博客 2309

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

微信,找回好友、群聊用户撤回的消息

好奇心害死人啊,就是想知道好友撤回了什么、群聊中撤回的什么 #coding=utf-8 import itchat from itchat.content import TEXT from itchat.content import * import sys import time import re reload(sys) sys.setdefaultencoding('utf8') impo

至尊玉的个人笔记 4366

python微信点赞脚本_你写过的最好的 Python 脚本是什么?

利用itchat模块登录网页版微信,将自己微信收到的所有消息都缓存下来,当检测到有消息撤回时,将撤回消息的缓存版本通过文件传输助手发送到自己的手机上。于是你就可以看到别人撤回的消息是什么了!!!效果是这样的:源代码:# Python查看微信撤回消息# 公众号: Charles的皮卡丘# 作者: Charlesimport reimport osimport timeimport itchatimp...

weixin_39815925的博客 1153

python——在文件助手中查看微信撤回消息

利用python实现防撤回,对方撤回的消息可在自己的微信文件传输助手中查看。 如果想变成可执行文件放在电脑中运行,可用pyinstaller将此程序打包成exe文件。 pyinstaller 文件名.py -F 执行程序后,消息防撤回就启动了。 程序完整代码 # -*-encoding:utf-8-*- import os import re import shutil import...

乐亦亦乐的博客 835
上一篇: 10个python入门小游戏,零基础打通关,就能掌握编程基础
下一篇: 一行python代码能干嘛?
我爱学大模型
博客等级 码龄3年 7883粉丝 687原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值