python查看微信撤回消息_python轻松实现查看微信撤回消息代码实例
收到微信消息被撤回,有没有心里一慌?今天给大家介绍一个基于python的微信开源库:itchat。只要几十行代码,轻松实现查看微信撤回消息,从此告别心慌慌!学起来吧!
思路流程:
1、监听微信消息接收,将收到的微信消息存储到文件中;
2、监听微信通知类消息接收,判断收到消息撤回的通知后,取出消息存储文件中的消息;
3、将取出的消息内容发送到我的个人微信文件传输助手。
实现代码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# author Roc.Wong
# @Time : 2018/7/26 10:19
# @File : chehuixinxi.py
import os
import re
import time
import itchat
from itchat.content import *
# 说明:可以撤回的有文本文字、语音、视频、图片、位置、名片、分享、附件
# {msg_id:(msg_from,msg_to,msg_time,msg_time_rec,msg_type,msg_content,msg_share_url)}
msg_dict = {}
# 文件存储临时目录
rev_tmp_dir = r"C:\PycharmProjects\mypros\weixin\revdir"
if not os.path.exists(rev_tmp_dir): os.mkdir(rev_tmp_dir)
# 表情有一个问题 | 接受信息和接受note的msg_id不一致 巧合解决方案
face_bug = None
# 将接收到的消息存放在字典中,当接收到新消息时对字典中超时的消息进行清理 | 不接受不具有撤回功能的信息
# [TEXT, PICTURE, MAP, CARD, SHARING, RECORDING, ATTACHMENT, VIDEO, FRIENDS, NOTE]
@itchat.msg_register([TEXT, PICTURE, MAP, CARD, SHARING, RECORDING, ATTACHMENT, VIDEO])
def handler_receive_msg(msg):
global face_bug
# 获取的是本地时间戳并格式化本地时间戳 e: 2017-04-21 21:30:08
msg_time_rec = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# 消息ID
msg_id = msg['MsgId']
# 消息时间
msg_time = msg['CreateTime']
# 消息发送人昵称 | 这里也可以使用RemarkName备注 但是自己或者没有备注的人为None
msg_from = (itchat.search_friends(userName=msg['FromUserName']))["NickName"]
# 消息内容
msg_content = None
# 分享的链接
msg_share_url = None
if msg['Type'] == 'Text' \
or msg['Type'] == 'Friends':
msg_content = msg['Text']
elif msg['Type'] == 'Recording' \
or msg['Type'] == 'Attachment' \
or msg['Type'] == 'Video' \
or msg['Type'] == 'Picture':
msg_content = r"" + msg['FileName']
# 保存文件
msg['Text'](rev_tmp_dir + msg['FileName'])
elif msg['Type'] == 'Card':
msg_content = msg['RecommendInfo']['NickName'] + r" 的名片"
elif msg['Type'] == 'Map':
x, y, location = re.search(
"" + x.__str__() + " 经度->" + y.__str__()
else:
msg_content = r"" + location
elif msg['Type'] == 'Sharing':
msg_content = msg['Text']
msg_share_url = msg['Url']
face_bug = msg_content
# 更新字典
msg_dict.update(
{
msg_id: {
"msg_from": msg_from, "msg_time": msg_time, "msg_time_rec": msg_time_rec,
"msg_type": msg["Type"],
"msg_content": msg_content, "msg_share_url": msg_share_url
}
}
)
# 收到note通知类消息,判断是不是撤回并进行相应操作
@itchat.msg_register([NOTE])
def send_msg_helper(msg):
global face_bug
if re.search(r"\", msg['Content']) is not None:
# 获取消息的id
old_msg_id = re.search("\(.*?)\", msg['Content']).group(1)
old_msg = msg_dict.get(old_msg_id, {})
if len(old_msg_id)
python查看微信撤回消息_python轻松实现查看微信撤回消息代码实例相关推荐
- python图像转字符画_Python实现图片转字符画的代码实例
如何利用Python实现图片转字符画详解 如何用python将图片转为字符画给小编你的心作纪念,小编的梦有你的祝福才能够完全,风浪再大,小编也会勇往直前,小编们的爱,镶在青春的纪念册. # codin ...
- python手机壁纸超清_python爬虫 爬取超清壁纸代码实例
简介 壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物.然而,终究有一天你已经产生审美疲劳了,但你下定决定要换壁纸的时候,又发现网上的壁 ...
- 在当当买了python怎么下载源代码-Python爬取当当、京东、亚马逊图书信息代码实例...
注:1.本程序采用MSSQLserver数据库存储,请运行程序前手动修改程序开头处的数据库链接信息 2.需要bs4.requests.pymssql库支持 3.支持多线程 from bs4 impor ...
- python发送微信消息_python 发送QQ或者微信消息
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 废话少说,先上代码: # coding = utf-8 import win32gui import win32api import win32con i ...
- python支付程序源码_Python提取支付宝和微信支付二维码的示例代码
支付宝或者微信支付导出的收款二维码,除了二维码部分,还有很大一块背景图案,例如下面就是微信支付的收款二维码: 有时候我们仅仅只想要图片中间的方形二维码部分,为了提取出中间部分,我们可以使用图片处理软件 ...
- python公众号文章爬虫_Python爬虫爬取微信公众号历史文章全部链接
因为朋友问我能不能找一下一个微信公众号的全部历史文章的链接,我就帮他弄了一下,通过百度和谷歌发现现在大家爬微信公众号的思路基本都是下面两种: 通过搜狗搜索微信公众号然后拿到链接 通过fiddler检测 ...
- python wechatpay微信支付回调_python服务器 实现app微信支付:支付异步通知
# -*- coding: utf-8 -*- import tornado.httpserver import tornado.ioloop import tornado.options impor ...
- python通过微信聊天记录分析_Python利用itchat对微信中好友数据实现简单分析的方法...
前言 最近在一个微信公众号上看到一个调用微信 API 可以对微信好友进行简单数据分析的一个包 itchat 感觉挺好用的,就简单尝试了一下. 库文档说明链接在这: itchat 安装 在终端中输入以下 ...
- python开发qq聊天机器人_Python qqbot 实现qq机器人的示例代码
qqbot 是一个用 python 实现的.基于腾讯 SmartQQ 协议的 QQ 机器人框架,可运行在 Linux . Windows 和 Mac OSX 平台下. 你可以通过扩展 qqbot 来实 ...
- python计算长方形面积代码_Python计算两个矩形重合面积代码实例
这篇文章主要介绍了Python 实现两个矩形重合面积代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 计算两个矩形的重合面积 imp ...
最新文章
- Quixel megascans模型材质贴图合集包
- 扩增子分析神器USEARCH简介
- 数据结构 | 实现串(定长顺序存储表示法)
- 基于matlab的图像分割,基于MATLAB的图像分割算法研究毕业论文
- 【剑指offer】面试题30:包含min函数的栈
- C++实现大数据乘法
- c语言指针++_C ++此指针| 查找输出程序| 套装1
- java tostring 格式化日期_ASP.NET格式化日期
- C++ {}作用域 return
- 解决360 安装补丁智能忽略的问题!
- 数学分析第四版上册70页14题
- Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day17】—— 数据库4
- 学python可以从事什么工作,python是做什么的软件
- ios设置中性黑体_iOS - 使用自定义字体-苹方字体
- MagicBox Statistics
- MyCat详解(1.MyCat简介)
- python利用opencv进行车牌号识别定位
- c语言logical转文本,c语言逻辑运算符(C language logical operator).doc
- MPI中常用的通信方法
- 【OpenGL学习笔记②】——OpenGL基础【渲染管线 顶点着色器 片元着色器 VAO VBO 万字总结】
热门文章
- SMART PLC堆栈LIFO(后进先出)算法实现(功能块)
- html5水墨,web前端入门到实战:html5网页特效-水墨动画
- 信息检索关键词的进阶使用
- 基于Websocket协议的即时通讯系统设计与实现
- keystone创建服务实体HTTP500,An unexpected error prevented the server from fulfilling your request. HTTP500
- 教资缴费显示内部服务器错误,中小学教师资格考试网上支付常见问题
- 第八课: FTP Server设置与加载
- 5G笔记| 概述:5G三大应用场景、5G关键技术概览
- Boolean中0与1的转化
- Phython是什么?