一篇关于微信防撤回(文本、图片、语音、视频、名片等...)的Python学习教程
大家在使用微信过程中,有时候消息还没看到,就被撤回了。毕竟好奇心大家都有,明知到消息被撤回了,就更想去看一下是什么内容。
心里想着万一是女神给我表白了呢… 今天的Python学习教程就教大家用Python来做个微信防撤回的小功能。支持文本、图片、语音、视频、名片的防撤回。
思路:
利用itchat库将每次接收到的消息进行缓存。监听撤回事件,当有消失被撤回时,通过msgId去缓存中取到信息再发送给文件传输助手。这样就实现了一个简单的防撤回功能。
效果图
Python学习教程操作:将接收的消息缓存
import itchatfrom itchat.content import *import datetimeimport reimport os# 微信接受的信息存储路径FILE_PATH = '/home/wechat/'# 存放微信消息的缓存字典MSG_DICT = {}# 微信消息类型字典MSG_MESSAGE = {'Text': '文本', 'Map': '位置分享', 'Sharing': '分享链接','Picture': '图片', 'Video': '视频', 'Card': '名片','Attachment': '附件', 'Recording': '语音'}"""监听消息"""# 监听的消息类型 为TEXT, MAP, SHARING, PICTURE, VIDEO, CARD, RECORDING, ATTACHMENT@itchat.msg_register([TEXT, MAP, SHARING, PICTURE, VIDEO, CARD, RECORDING, ATTACHMENT])def wechat_msg(msg):# 获取消息idmsg_id = msg['MsgId']# 当前时间msg_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')# 发送人msg_from = itchat.search_friends(userName=msg['FromUserName'])['RemarkName']# 备注为空 获取昵称if not msg_from:msg_from = itchat.search_friends(userName=msg['FromUserName'])['NickName']# 内容msg_text = msg['Text']# 消息类型msg_type = msg['Type']msg_url = None# 消息为视频、照片、语音、附件的时候需要进行保存save_type = [VIDEO, PICTURE, RECORDING, ATTACHMENT]if msg_type in save_type:# 保存文件msg['Text'](FILE_PATH + msg['FileName'])msg_text = msg['FileName']# 消息类型为地图、分享链接时 记录urlurl_type = [MAP, SHARING]if msg_type in url_type:msg_url = msg['msg_url']# 名片if msg_type == CARD:sex = msg['RecommendInfo']['Sex']if sex == 1:sex = '小哥哥'elif sex == 2:sex = '小姐姐'else:sex = 'ladyBoy'msg_text = f'来自{msg["RecommendInfo"]["Province"]} { msg["RecommendInfo"]["City"]}的 {msg["RecommendInfo"]["NickName"]} {sex} 的名片.'# 消息放入字典中MSG_DICT[msg_id] = {'msg_from': msg_from, 'msg_time': msg_time, 'msg_text': msg_text, 'msg_url': msg_url, 'msg_type': MSG_MESSAGE[msg_type]}print({'msg_from': msg_from, 'msg_time': msg_time, 'msg_text': msg_text, 'msg_url': msg_url, 'msg_type': MSG_MESSAGE[msg_type]})
我们将微信接收到的文本、视频、语音、图像、附件等消息类型都缓存到了MSG_DICT这个字典当中。下面我们就可以对 撤回 事件进行监听
Python学习教程:监听撤回、发送撤回内容
# 监听微信事件,@itchat.msg_register([NOTE])def get_withdraw_message(msg):# 文本消息content = msg['Content']print('监听事件...')# result = re.search(r"\<\!\[CDATA\[.*撤回了一条消息]\]\>", msg['Content'])# 判断是否是撤回消息pattern = re.compile(r"\<\!\[CDATA\[.*撤回了一条消息]\]\>")match = pattern.findall(content)"""msg 内容'<sysmsg type="revokemsg"><revokemsg><session>wxid_ajl8ccgq8ehf22</session><oldmsgid>1671792812</oldmsgid><msgid>3341430144853335059</msgid><replacemsg><![CDATA["初一丶" 撤回了一条消息]]></replacemsg></revokemsg></sysmsg>'"""# 有撤回的消息if match:# 获取撤回消息的msg_idwithdraw_msg_id = re.search(r"\<msgid>(.*?)\<\/msgid", content).group(1)if MSG_DICT:# 获取撤回消息的内容withdraw_msg = MSG_DICT.get(withdraw_msg_id)# 构建消息文本semd_msg = withdraw_msg.get('msg_from') + '撤回了他在' + withdraw_msg.get('msg_time') + \'发送的' + withdraw_msg.get('msg_type') + '消息。' + '内容为:' + withdraw_msg.get('msg_text')print(semd_msg)# 撤回信息的消息类型type = withdraw_msg['msg_type']# 如果是地图、或者分享信息的时候 拼接urlif type in [MAP, SHARING]:semd_msg += "信息链接为:" + withdraw_msg.get('msg_url')# 将文本信息发送至文件传输助手result = itchat.send(semd_msg, toUserName='filehelper')# 如果是['视屏', '图片', '语音', '附件'] 发送相应文件file = FILE_PATH + withdraw_msg['msg_text']if type in ['视频', '图片', '语音', '附件']:# 发送文件至传输助手result = itchat.send_file(file, toUserName='filehelper')# 发送图片也可以# result = itchat.send_image(file, toUserName='filehelper')# 发送视频# result = itchat.send_video(file, toUserName='filehelper')# 将已发送的文件 从硬盘上删除os.remove(file)# 从字典中删除已发送的文件del MSG_DICT[withdraw_msg_id]if __name__ == '__main__':# 微信热登录itchat.auto_login(True)# 启动itchat.run()
有兴趣的伙伴可以试一下的,这篇关于微信防撤回的教程,去年就在琢磨跟大家出了。库存啦哈哈哈!更多的Python学习教程和Python实用小技巧也会继续为大家更新!
一篇关于微信防撤回(文本、图片、语音、视频、名片等...)的Python学习教程相关推荐
- 关于微信防撤回(文本、图片、语音、视频、名片等...)的Python学习教程
大家在使用微信过程中,有时候消息还没看到,就被撤回了.毕竟好奇心大家都有,明知到消息被撤回了,就更想去看一下是什么内容. 心里想着万一是女神给我表白了呢- 今天的Python学习教程就教大家用Pyth ...
- python web微信应用(五) 自动下载接收的图片/语音/视频/普通文件
文章目录 前言 一.webwx 模块介绍 二.自动下载接收的图片/语音/视频/普通文件到本地 前言 本篇文章作为系列第五篇文章,将实现自动下载接收到的图片.语音.视频.普通文件的功能: 系列其它文章请 ...
- python接收微信消息_【Python写微信防撤回脚本】02 接收记录聊天信息
上一期我们安装好了ItChat,并且学会用它登录微信.想知道它还能做什么?往下滑吧~ 接收好友信息 利用ItChat登录微信之后,我们就可以自动记录好友发来的信息. 话不多说,直接上代码: impor ...
- python微信库wxpy_python wxpy微信防撤回功能
python使用wxpy轻松实现微信防撤回的方法 最近比较闲就随便瞎看,看到了微信防撤回就顺便跟着学着实现一下 使用的是wxpy,安装方法pip install wxpy(我使用的是python2.7 ...
- 微信防撤回python代码_python实现微信防撤回神器
本文实例为大家分享了python实现微信防撤回神器的具体代码,供大家参考,具体内容如下 手写辛苦,希望给赞 #!/usr/local/bin/python3 # coding=utf-8 import ...
- python 基于itchat详解微信防撤回程序
itchat学习笔记请见另一文章 文章目录 0. 选题背景 1. 发现问题 2. 提炼问题 3. 解决方案 4. 分析设计 4.0 准备 问题4.1 : 如何用程序登录自己的微信账号? 问题4.2 : ...
- 信息时代——微信防撤回(Python实现)
目录 1 前言 2 有微信联想起的哲思 2.1 哲学思维开始冒头 2.2 哲学期 2.3 科学时代 2.4 后科学时代 3 微信防撤回完整代码奉上 1 前言 她总是微信撤回,我得想一个法子治治她,哈哈 ...
- 手把手教会你Android手机QQ和微信防撤回
如今QQ和微信都能撤回消息,当对方撤回了消息,想看又看不了,是不是很想知道对方撤回了什么?接下来我就来教会大家阻止对方QQ撤回的消息和查看微信撤回的消息. 1.首先,手机需要获取root权限(目前有很 ...
- GitHub上这个微信防撤回的开源项目,99%的程序员不知道
我知道你知道很多种微信消息的撤回方式,如果你一种都不知道,那么请你往下看. 关于微信发错消息的尴尬,估计大家都有不堪回首的历史. 开个玩笑 假如你是这个老板? 画面引起极度不适,[手动捂脸] 你想想, ...
- 自制PC微信防撤回补丁教程
转自:源1 前两天看 GitHub 发现一个有趣的项目,PC微信防撤回补丁,本着研究学习的目的,在看过源码,一顿疯狂操作之后,了解了其原理是基于修改 wechatwin.dll 达到防撤回的. 于是乎 ...
最新文章
- 一年暴涨近20倍,比特币是郁金香泡沫还是庞氏骗局?
- 这就是那个feature map256 256向量
- 6年Microsoft MVP,是否还能坚持4年?
- CentOS 6.5 搭建NFS文件服务器
- C语言之加入头文件<stdbool.h>可以使用true和false
- 一份从 0 到 1 的 Java 项目实践清单
- Python调用API接口的几种方式
- PDO NOsuch file 将DNHOST修改
- 朱福喜 java_与朱福喜的教科同步JAVA实验指导书
- 计算机遥感毕设选题,遥感硕士毕业论文题目
- Multisim10.0.1汉化时没有stringfiles问题
- apicloud中阿里云推送使用
- 【测试】11月11日的测试
- java中cbrt_JavaScript中带有示例的Math.cbrt()方法
- 自媒体账号如何快速涨粉?
- Python工程师需要学习的知识总结,送给需要的人
- IDEA导入scala详解
- 大数据学习中虚拟机准备工作(centos基础配置)
- 2022-04-01每日刷题打卡
- 【Android】Activity详解
热门文章
- 商城购物系统设计与实现(Java毕业设计-SSM项目)
- 音频编解码介绍(最全v1.0)
- 通过python操作GeoLite2-City.mmdb库将nginx日志访问IP转换为城市写入数据库
- 浅谈对JAVA堆栈的理解
- 校园智能安防监控解决方案
- 二阶有源带通滤波器滤波原理
- python炫彩界面_炫彩界面库和火花脚本编辑框scintilla制作python IDE框架
- 工科数学分析 MA_12 Vectors and the Geometry of Space (下篇)
- 存储基础知识--存储网络
- 膜拜高手!Python竟然开发命令行版网易云音乐!