【微信聊天记录制作词云】超详细保姆级教学!!!(详细步骤+代码)

您所在的位置:网站首页 微信群聊记录生成器 【微信聊天记录制作词云】超详细保姆级教学!!!(详细步骤+代码)

【微信聊天记录制作词云】超详细保姆级教学!!!(详细步骤+代码)

2024-06-04 10:07| 来源: 网络整理| 查看: 265

简介

还在因各种情侣节日不知道送对方什么礼物而感到苦恼吗?不如试试这个超浪漫的微信聊天词云!

整体思路主要为:

1. 利用模拟器找到备份文件

2. 解密文件并导出文本文件

3. 代码制作词云

前期准备:

一台Windows电脑,一台手机

具体步骤 1. 配置MUMU模拟器

直接点下面这个链接下载软件然后安装

MUMU模拟器下载地址

 安装之后打开应该长下面这样(没有微信的Root Explorer)

然后点击右上角设置中心

打开root权限

直接桌面顶部搜索栏输入微信然后下载

 打开你自己的手机根据:

安卓(我->设置->聊天->聊天记录迁移和备份->迁移->迁移到另一台手机或平板->仅迁移指定聊天记录)

IOS(我->设置->通用->聊天记录迁移和备份->迁移->迁移到另一台手机或平板->仅迁移指定聊天记录)

转移聊天记录,然后你的手机上会出现一个二维码

接下来打开你模拟器的微信扫一扫功能,然后扫刚才那个码就可以把聊天记录传到模拟器里了 

传输完之后,下载Root Explorer(以下简称RE),老样子直接在搜索栏搜,如果搜不到的话打开内置浏览器上网上下一个也可以

然后打开你的RE,应该长下面这样

根据

从根目录/下开始,路径为:/data/data/com.tencent.mm/MicroMsg//EnMicroMsg.db,其中,为一数字字母组成的字符串,因微信号不同而不同,EnMicroMsg.db就是我们的数据库文件了。

然后长按这个文件复制

然后粘贴到你的存储里的这个文件夹里

这样你应该就能在你自己的电脑里的文档中的MUMU共享文件夹中看到你的文件

2. 解密文件

微信对该数据库文件进行了加密,加密规则是:先对IMEI和UIN进行拼接,然后利用MD5算法对拼接后的字符串进行转换,转换后的前7位字符为密码。

由于我们使用的是模拟器,所以IMEI为:1234567890ABCDEF

UIN是微信的用户信息号,你可以在模拟器中的RE根据以下路径找到:/data/data/com.tencent.mm/shared_prefs,然后直接用RE打开其中的system_config_prefs.xml,找到其中name为default_uin的标签所对应的value的值,就是UIN。

至此,我们已经拿到了IMEI和UIN的信息,打开这个网站MD5散列计算器然后把你的IMEI和UIN输入进去(UIN我乱输的,你们就输入你们的UIN就好) ,如果你的UIN前面有“-”或者“+”一定要输进去!!!然后得到的散列值前7位即为密钥

得到了密钥和文件我们还需要SQLcipher去访问里面的内容,下面是下载链接

链接:https://pan.baidu.com/s/1_eh6VxCu-CPfzXDVK7GueA  提取码:3szk

打开SQLcipher,然后右上角Open Database,然后选中EnMicroMsg.db文件

输入刚才散列值的前7位 

然后就打开了

 找到"message"那个文件,然后导出为CSV文件

使用记事本打开“message.csv”文件并另存为 txt文件,并改为UTF-8编码!!! 

3. 制作词云

以下代码需要四个文件:

“chat_records.txt” 也就是我们刚才导出的那个文件,改成这个名字即可

“stopwords.txt” 可以从这里获取StopWords

“mywords.txt” 直接新建一个空白的txt文件就行

“picture.jpg” 这个是设定你的词云是什么形状的,一般来说只要是轮廓清晰就可以,这边提供一个模板,直接截图保存使用就可

以下就是完整代码,把上述文件和代码放在一个目录下,缺什么包直接“pip install + 包的名字”就可以了。

# coding: utf-8 import jieba import re import pandas as pd import matplotlib.pyplot as plt from wordcloud import WordCloud, ImageColorGenerator from imageio import imread def load_file_segment(): # Load the text file and segment words jieba.load_userdict(r"E:\Programming Project\Python\WordCloud\mywords.txt") # Load our own dictionary with open(r"E:\Programming Project\Python\WordCloud\chat_records.txt",'r',encoding='utf-8') as f: # Open the file content = f.read() # Read the file content # Retain Chinese content content = re.sub(r'[^\u4e00-\u9fa5]', '', content) segs = jieba.cut(content) # Segment the whole text segment = [seg for seg in segs if 2


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3