python如何查看微信消息撤回


Posted in Python onNovember 27, 2018

本文为大家分享了python查看微信消息撤回的具体代码,供大家参考,具体内容如下

1.安装itchat

itchat是一个开源的python微信库,支持发送消息、图片、视频、地图、名片、文件等,还可以实现自动回复等多种功能。

看到的一个文档还不错

1).先安一个python 下载地址

2).安装成功之后,进入pip3.exe所在的目录

python如何查看微信消息撤回

安装itchat:pip3.exe install itchat 下图我的已经安装过了(注意:使用3以及以上版本执行)。

python如何查看微信消息撤回

3.打开cmd拖入按回车就好了

python如何查看微信消息撤回

代码实现

建一个wx.py文件,以下代码导入

# -*-encoding:utf-8-*-
import os
import re
import shutil
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 = "/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(
      "<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
  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"\<\!\[CDATA\[.*撤回了一条消息\]\]\>", msg['Content']) is not None:
    # 获取消息的id
    old_msg_id = re.search("\<msgid\>(.*?)\<\/msgid\>", msg['Content']).group(1)
    old_msg = msg_dict.get(old_msg_id, {})
    if len(old_msg_id) < 11:
      itchat.send_file(rev_tmp_dir + face_bug, toUserName='filehelper')
      os.remove(rev_tmp_dir + face_bug)
    else:
      msg_body = "爱你蕾蕾 ⇣" + "\n" \
            + old_msg.get('msg_from') + " 撤回了 " + old_msg.get("msg_type") + " 消息" + "\n" \
            + old_msg.get('msg_time_rec') + "\n" \
            + "内容 ⇣" + "\n" \
            + r"" + old_msg.get('msg_content')
      # 如果是分享存在链接
      if old_msg['msg_type'] == "Sharing": msg_body += "\n就是这个链接➣ " + old_msg.get('msg_share_url')

      # 将撤回消息发送到文件助手
      itchat.send(msg_body, toUserName='filehelper')
      # 有文件的话也要将文件发送回去
      if old_msg["msg_type"] == "Picture" \
          or old_msg["msg_type"] == "Recording" \
          or old_msg["msg_type"] == "Video" \
          or old_msg["msg_type"] == "Attachment":
        file = '@fil@%s' % (rev_tmp_dir + old_msg['msg_content'])
        itchat.send(msg=file, toUserName='filehelper')
        os.remove(rev_tmp_dir + old_msg['msg_content'])
      # 删除字典旧消息
      msg_dict.pop(old_msg_id)


if __name__ == '__main__':
  itchat.auto_login(hotReload=True,enableCmdQR=1)
  itchat.run()

打开cmd,将文件拖入即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
tornado框架blog模块分析与使用
Nov 21 Python
python3写爬取B站视频弹幕功能
Dec 22 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
Apr 09 Python
利用Python yagmail三行代码实现发送邮件
May 11 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
Jun 07 Python
Python之csv文件从MySQL数据库导入导出的方法
Jun 21 Python
详解Python装饰器
Mar 25 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
Jun 24 Python
详解Python 字符串相似性的几种度量方法
Aug 29 Python
pytorch实现查看当前学习率
Jun 24 Python
pycharm中使用request和Pytest进行接口测试的方法
Jul 31 Python
python实现经典排序算法的示例代码
Feb 07 Python
python中退出多层循环的方法
Nov 27 #Python
为什么Python中没有&quot;a++&quot;这种写法
Nov 27 #Python
django session完成状态保持的方法
Nov 27 #Python
Python3实现腾讯云OCR识别
Nov 27 #Python
python利用百度AI实现文字识别功能
Nov 27 #Python
python如何实现一个刷网页小程序
Nov 27 #Python
python实现简单的文字识别
Nov 27 #Python
You might like
php使用指定字符列表生成随机字符串的方法
2015/04/18 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
基于jquery的表格排序
2010/09/11 Javascript
JQuery扩展插件Validate—4设置错误提示的样式
2011/09/05 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
深入理解setTimeout函数和setInterval函数
2016/05/20 Javascript
Vue.js每天必学之过渡与动画
2016/09/06 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
Python文本相似性计算之编辑距离详解
2016/11/28 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
Python(Django)项目与Apache的管理交互的方法
2018/05/16 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
python的pygal模块绘制反正切函数图像方法
2019/07/16 Python
Python 内置函数globals()和locals()对比详解
2019/12/23 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
Python3实现个位数字和十位数字对调, 其乘积不变
2020/05/03 Python
STAY JAPAN台湾:预订日本民宿
2018/07/22 全球购物
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
水产养殖学应届生求职信
2013/09/29 职场文书
简历中的自我评价怎么写
2014/01/29 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
担保书格式及范文
2014/04/01 职场文书
小学亲子活动总结
2014/07/01 职场文书
学习党代会心得体会
2014/09/05 职场文书
产品质量保证书范本
2015/02/27 职场文书
小学少先队工作总结2015
2015/05/26 职场文书
opencv读取视频并保存图像的方法
2021/06/04 Python
python 闭包函数详细介绍
2022/04/19 Python