利用Python找回微信撤回信息
一條撤回的微信消息,就像一個秘密,讓你迫切地想去一探究竟;或如一個誘餌,瞬間勾起你強(qiáng)烈的興趣。你想知道,那是怎樣的一句話?是對方不慎講出的真話,還是一句發(fā)錯了對象的話?

總之,這個撤回的消息,讓人頓生×××。這個時候,就是技術(shù)人員出馬的時候了。

Python查看微信撤回消息參考代碼:
import itchat
from itchat.content import *
import os
import time
import xml.dom.minidom # 解析xml模塊
# 這是保存撤回消息的文件目錄(如:圖片、語音等)
temp = 'C:/Users/Administrator/Desktop/CrawlerDemo' + '/' + '撤回的消息'
if not os.path.exists(temp):
os.mkdir(temp)
itchat.auto_login(True) # 自動登錄
dict = {} # 定義一個字典
# 這是一個裝飾器,給下面的函數(shù)添加新功能
# 能夠捕獲好友發(fā)送的消息,并傳遞給函數(shù)參數(shù)msg
@itchat.msg_register([TEXT, PICTURE, FRIENDS, CARD, MAP, SHARING, RECORDING, ATTACHMENT, VIDEO]) # 文本,語音,圖片
def resever_info(msg):
global dict # 聲明全局變量
info = msg['Text'] # 取出消息內(nèi)容
msgId = msg['MsgId'] # 取出消息標(biāo)識
info_type = msg['Type'] # 取出消息類型
name = msg['FileName'] # 取出消息文件名
# 取出消息發(fā)送者標(biāo)識并從好友列表中檢索
fromUser = itchat.search_friends(userName=msg['FromUserName'])['NickName']
ticks = msg['CreateTime'] # 獲取信息發(fā)送的時間
time_local = time.localtime(ticks)
dt = time.strftime("%Y-%m-%d %H:%M:%S", time_local) # 格式化日期
# 將消息標(biāo)識和消息內(nèi)容添加到字典
# 每一條消息的唯一標(biāo)識作為鍵,消息的具體信息作為值,也是一個字典
dict[msgId] = {"info": info, "info_type": info_type, "name": name, "fromUser": fromUser, "dt": dt}
@itchat.msg_register(NOTE) # 監(jiān)聽系統(tǒng)提示
def note_info(msg):
# 監(jiān)聽到好友撤回了一條消息
if '撤回了一條消息' in msg['Text']:
# 獲取系統(tǒng)消息中的Content結(jié)點(diǎn)值
content = msg['Content']
# Content值為xml,解析xml
doc = xml.dom.minidom.parseString(content)
# 取出msgid標(biāo)簽的值
result = doc.getElementsByTagName("msgid")
# 該msgId就是撤回的消息標(biāo)識,通過它可以在字典中找到撤回的消息信息
msgId = result[0].childNodes[0].nodeValue
# 從字典中取出對應(yīng)消息標(biāo)識的消息類型
msg_type = dict[msgId]['info_type']
if msg_type == 'Recording': # 撤回的消息為語音
recording_info = dict[msgId]['info'] # 取出消息標(biāo)識對應(yīng)的消息內(nèi)容
info_name = dict[msgId]['name'] # 取出消息文件名
fromUser = dict[msgId]['fromUser'] # 取出發(fā)送者
dt = dict[msgId]['dt'] # 取出發(fā)送時間
recording_info(temp + '/' + info_name) # 保存語音
# 拼接提示消息
send_msg = '【發(fā)送人:】' + fromUser + '\n' + '發(fā)送時間:' + dt + '\n' + '撤回了一條語音'
itchat.send(send_msg, 'filehelper') # 將提示消息發(fā)送給文件助手
# 發(fā)送保存的語音
itchat.send_file(temp + '/' + info_name, 'filehelper')
del dict[msgId] # 刪除字典中對應(yīng)的消息
print("保存語音")
elif msg_type == 'Text':
text_info = dict[msgId]['info'] # 取出消息標(biāo)識對應(yīng)的消息內(nèi)容
fromUser = dict[msgId]['fromUser'] # 取出發(fā)送者
dt = dict[msgId]['dt'] # 取出發(fā)送時間
# 拼接提示消息
send_msg = '【發(fā)送人:】' + fromUser + '\n' + '發(fā)送時間:' + dt + '\n' + '撤回內(nèi)容:' + text_info
# 將提示消息發(fā)送給文件助手
itchat.send(send_msg, 'filehelper')
del dict[msgId] # 刪除字典中對應(yīng)的消息
print("保存文本")
elif msg_type == 'Picture':
picture_info = dict[msgId]['info'] # 取出消息標(biāo)識對應(yīng)的消息內(nèi)容
fromUser = dict[msgId]['fromUser'] # 取出發(fā)送者
dt = dict[msgId]['dt'] # 取出發(fā)送時間
info_name = dict[msgId]['name'] # 取出文件名
picture_info(temp + '/' + info_name) # 保存圖片
# 拼接提示消息
send_msg = '【發(fā)送人:】' + fromUser + '\n' + '發(fā)送時間:' + dt + '\n' + '撤回了一張圖片'
itchat.send(send_msg, 'filehelper') # 將圖片發(fā)送給文件助手
# 發(fā)送保存的語音
itchat.send_file(temp + '/' + info_name, 'filehelper')
del dict[msgId] # 刪除字典中對應(yīng)的消息
print("保存圖片")
itchat.run()

到此這篇關(guān)于利用Python找回微信撤回信息的文章就介紹到這了,更多相關(guān)Python找回撤回信息內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Python中實(shí)現(xiàn)貪婪排名算法的教程
這篇文章主要介紹了在Python中實(shí)現(xiàn)貪婪排名算法的教程,也是對學(xué)習(xí)算法的一個很好的演示,需要的朋友可以參考下2015-04-04
Python網(wǎng)絡(luò)編程 Python套接字編程
這篇文章主要為大家詳細(xì)介紹了Python網(wǎng)絡(luò)編程的相關(guān)資料,Python套接字編程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09
python神經(jīng)網(wǎng)絡(luò)Keras搭建RFBnet目標(biāo)檢測平臺
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)Keras搭建RFBnet目標(biāo)檢測平臺,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Python學(xué)習(xí)筆記之常用函數(shù)及說明
俗話說“好記性不如爛筆頭”,老祖宗們幾千年總結(jié)出來的東西還是有些道理的,所以,常用的東西也要記下來,不記不知道,一記嚇一跳,乖乖,函數(shù)咋這么多捏2014-05-05
基于Python實(shí)現(xiàn)股票數(shù)據(jù)分析的可視化
在購買股票的時候,可以使用歷史數(shù)據(jù)來對當(dāng)前的股票的走勢進(jìn)行預(yù)測,這就需要對股票的數(shù)據(jù)進(jìn)行獲取并且進(jìn)行一定的分析。本文將介紹如何通過Python實(shí)現(xiàn)股票數(shù)據(jù)分析的可視化,需要的可以參考一下2021-12-12

