步骤

- 获取对象聊天记录加密数据
- 解码
- 对csv数据进行筛选
-词云分析

获取微信聊天记录加密数据

安卓手机获取微信导出微信聊天记录需要先获取root权限,这个风险比较大,而且我这个手机比较小众,root很麻烦。今天看到一个直接下载安卓模拟器,在上面下载微信,导入聊天记录后,用RE文件管理器找到数据。这个方法更简单,并且不受手机系统的限制(不过苹果手机没有试过)。
1. 安装安卓模拟器
首先现在下载夜神模拟器,安装完毕打开root权限后,安装微信和RE文件管理器。

2. 聊天记录备份
在windows端登陆微信,把手机上的聊天记录备份到windows端。可以全部备份也可以选择对象的数据进行备份。

在模拟器上登陆微信,在windows端进行 恢复聊天记录到到手机。注意,此时最好只选择与对象的聊天记录进行恢复,这样之后不用在进行数据对象的筛选。
3. 利用RE文件管理器找到加密数据
给予RE文件管理器root权限。
打开RE文件管理器,进入/data/data/com.tencent.mm/MicroMsg,进入那个由数字和字母组合而成的文件夹(c3765b24523e7fb01257f1aa40ada472)

找到该文件夹下的EnMicroMsg.db文件

复制到模拟器的共享文件夹,共享文件夹的位置为 /mnt/shell/emulated/0/others 。之后访问windows下的 C:\Users\你的用户名\Nox_share\OtherShare 获取该数据库文件( EnMicroMsg.db )

解码

1. 下载sqlcipher.exe
(链接: https://pan.baidu.com/s/1Im3n02yseo-4IxeDY9srqQ 提取码: ka4z)
2. 获取IMEI和UIN进行解码
用sqlcipher.exe打开提取到的EnMicroMsg.db,需要利用IMEI和UIN进行MD5运算获取密钥。
在模拟器中获取IMEI号 如下图


用RE文件管理器,打开/data/data/com.tencent.mm/shared_prefs下的system_config_prefs.xml文件.打开后,找到default_uin后的value值,如565698015

利用 IMEI-UIN的格式进行MD5加密运算。例如用866174440346175-1565698015加密后得到

选取32小写的前七位作为sqlcipher.exe打开EnMicroMsg.db的密码。

,导出message数据为csv格式 File - export - table as csv.

对csv数据进行筛选

可以在sqlcipher.exe中对message中的content进行筛选,但是select后不能保存。

select datetime(subStr(cast(m.createTime as text),1,10),'unixepoch',           'localtime') as theTime,
case m.isSend
when 0 then r.nickname
when 1 then '我'end as person,m.content
from message
m inner join rcontact r on m.talker = r.username
where m.type=1 and r.nickname = 'djh'


所以还是export为csv表格,利用python重谢写一个筛选程序。但是得把csv文件的编码格式转换成utf-8,用记事本打开csv,另存为时选择编码模式为utf-8。

import pandas
import csv,sqlite3
#新建数据库为djh_log.db
conn = sqlite3.connect('djh_log.db')
#读取提取出的CSV文件
df = pandas.read_csv('djh.csv',sep=",")
#存入my_chat表中
df.to_sql('my_chat',conn,if_exists='append',index=False)#连接数据库
conn = sqlite3.connect('djh_log.db')
#获得油标
cursor = conn.cursor()
# 将content长度限定35以下,因为content中有时候会有微信发过来的东西
cursor.execute('select content from my_chat where length(content)<35')
# fetchall返回筛选结果
value = cursor.fetchall()data = open("djh聊天记录.txt",'w+',encoding='utf-8')
# 将筛选结果写入 djh聊天记录.txt"
for i in value:data.write(i[0]+'\n')#关闭连接
data.close()
cursor.close()
conn.close()
词云分析

对生成的txt文档进行词云分析

import jieba
import wordcloud
#from scipy.misc import imread
from imageio import imread
mask = imread("心形.png")
f = open("djh聊天记录.txt", "r", encoding="utf-8")
t = f.read()
f.close()
ls = jieba.lcut(t)  #对文本内容进行分词
txt = " ".join(ls)  #用空格分隔
w = wordcloud.WordCloud(  font_path = "C:\Windows\Fonts\msyh.ttc",mask = mask,\
width = 1000, height = 700, background_color = "white", \
)
w.generate(txt)
w.to_file("djh聊天记录.png")

https://pythondict.com/python-paintings/python-qixi-wechat-wordcloud/

刚开始会有关键词多次重复,这个与collocations参数有关,默认collocations=True,会统计搭配词。比如你的text是“我在拜访客户”,当collocations为True时,就会把“拜访客户”也当作一个词进行统计,所以会出现重复。将collocations=False后没有重复。

微信聊天记录词云分析相关推荐

  1. 利用python做微信聊天记录词云分析——记录美好回忆

    目录 1 概述 2 数据准备 2.1 安卓设备 2.1.1 Root手机,安装Root Explorer 2.1.2 用Root Explorer将聊天记录的数据文件导出并存入电脑 2.1.3 对En ...

  2. 用R语言做自己的微信聊天记录词云

    心血来潮,想做一个微信聊天记录词云,于是就动手了. 最后的效果如下图所示 啊--我真的是一个爽朗的女孩子. 好了,下面就是步骤啦~ 请多多指教. 第一步:导出微信聊天记录. 我使用的手机是安卓系统,是 ...

  3. Python---qq群聊天记录词云分析

    python拥有近13w个第三方库,其中有很多优秀的库,比如wordcloud,scipy,jieba等库,能快速实现很多功能,比如制作一个QQ群聊天记录词云-- 工具:PyCharm, Python ...

  4. 用R语言,生成微信聊天记录词云。

     首先获取微信聊天记录:并导出为txt文件 基于R语言: #install.packages("jiebaRD") #install.packages("jiebaR&q ...

  5. 微信聊天记录提取及分析(wordcloud+pyecharts)

    0. 前言 ​ 之所以想要提取微信的聊天记录并分析是因为也开始再学习python,但是单纯看看语法什么的又很无趣,无意间看到python可以进行微信聊天记录的分析,就自己尝试做了一下,感觉还是挺有意思 ...

  6. [Python微信开发] 一.itchat入门知识及微信自动回复、微信签名词云分析

    最近准备学习微信小程序开发,偶然间看到了python与微信互动的接口itchat,简单学习了下,感觉还挺有意思的,故写了篇基础文章供大家学习.itchat是一个开源的微信个人号接口,使用python调 ...

  7. python爬虫:词云分析最热门电影《后来的我们》

    跟闺蜜周末去看了电影<后来的我们>,被感动的一塌糊涂,回来后心血来潮,写了这么个词云分析工具~ 1 模块库使用说明 1.1 requests库 requests 是用Python语言编写, ...

  8. 词云分析案例_品牌案例中的案例研究词

    词云分析案例 A close-up look at Friday's design process. 近看星期五的设计过程. WORDS IN THE WILD IS A BAY-AREA NONPR ...

  9. jieba库词频统计_如何用python对《三国演义》、《红楼梦》等名著开展词云分析及字频统计、出场统计等工作。...

    以下以<红楼梦>为例进行设计. 在制作词云图及统计之前,需要下载python的几个库,wordcloud.jieba以及imageio等,我的操作系统为Windows10,IDE环境为id ...

最新文章

  1. 咸宁书写桂花产业-国情研究·万祥军:特色农业谋定大健康
  2. HDU - 4612 Warm up(边双缩点+树的直径)
  3. 设计模式示例_命令设计模式示例
  4. 如何把我的Java程序变成exe文件?
  5. 光学字符识别 android,基于Android的光学字符识别研究与实现
  6. Android 自定义组合控件 简单导航栏
  7. 2016.12.30非线性优化计算方法1
  8. APP定制开发之前,这6条铁律要牢记
  9. Linux学习(一)
  10. 计算机领域顶级会议列表
  11. 打麻将 - 基于R语言
  12. KBEngine 房间示例创建脚本调用解读
  13. STM32关于“NVIC_InitStructure.NVIC_IRQChannel = TIM1_IRQn; error:useof undeclared identifi ‘T1M1_IRQN‘
  14. [别被脱裤系列]2 还没深入数据库就浅出了
  15. 雕刻效果的实现【OpenCV+QT】
  16. CSS生成关闭叉叉图标
  17. HDU 小明系列故事——买年货
  18. 教育知识与能力——简答题30题
  19. 20篇精心整理的技术360
  20. thinkphp6错误页面编辑_Windows10在Word中编辑PDF文件

热门文章

  1. Hibernate org.hibernate.hql.internal.ast.QuerySyntaxException: tb_supplier is not mapp
  2. 超宽带无线电(UWB)
  3. 关于像素、分辨率、PPI、DPI等概念的分析
  4. 音乐播放器 - 自动化测试
  5. mfc-7360扫描时无法检查连接计算机,mfc7360怎么扫描 mfc7360扫描键无反映解决办法...
  6. 神策数据与京东科技达成战略合作,共推数字化营销解决方案
  7. 记录2019届秋季校园招聘:VIVO提前批(AI专场)2018.7.13
  8. java汽车租赁系统的简单应用
  9. C语言不带头结点的单链表
  10. Laya 3D开发经验和问题总结