本文的最终目的是将手机微信的聊天记录导出到电脑里,变成txt文本文件,然后对其进行分析。
网上有一些工具也可以完成这个功能,但是基本都是付费的。手动操作的话,找了很多的博客,基本没有完全有效的。最终找到一篇很靠谱的教程:传送门,本文基本参考这篇进行整理。
首先上我的github把所有需要的文件下载下来:
https://github.com/godweiyang/wechat-explore
,用法稍后说明。
首先要做的第一步就是将手机端的微信数据库 .db文件导出到电脑上。
小米的话做法很简单,不需要进行root。
设置-更多设置-备份和重置-本地备份,输入密码,点击 新建备份,把两个勾去掉,点击软件程序右边的尖括号,选择微信,点击确定,点击开始备份,等待完成就行了。

MIUI/backup/AllBackup/yyyymmdd_xxxxxx/文件夹,将 .bak文件拷贝到电脑上,我这里重命名为了 com.tencent.mm.bak。

com.tencent.mm.bak文件,并且将 apps\com.tencent.mm\r\MicroMsg\systemInfo.cfg、 apps\com.tencent.mm\r\MicroMsg\CompatibleInfo.cfg和 apps\com.tencent.mm\r\MicroMsg\xxxx\EnMicroMsg.db三个文件解压到电脑上。这里xxxx是一串随机的字母,代表你的微信用户,每个人不一样,一般是最大的那个文件夹,我这里是下图所示文件夹:

其他手机可能没有这么方便,一种办法是root之后去 /data/data/com.tencent.mm/MicroMsg下面找这三个文件,但是很多人是不会去root的,所以介绍另一种方法。
首先电脑上安装一款安卓模拟器,然后里面下载手机微信并登录,最重要的一步就是将手机端聊天记录备份到电脑端微信,然后将电脑端聊天记录恢复到安卓虚拟器里的微信,这个功能是微信自带的,应该没有什么难度。
然后对安卓虚拟器进行root,这个也是设置里就有的,最后就能把三个文件都拷贝到电脑上了。

javac IMEI.java
java IMEI systemInfo.cfg CompatibleInfo.cfg第三行就是数据库的密码了。

sqlcipher.exe软件,用它打开 EnMicroMsg.db数据库,输入第五步得到的密码。


File-Export-TableasCSV file,选择 message表,并导出。

数据-来自文本,然后导入这个 .csv文件。

GB2312,然后载入,这时候就不乱码了。

talker一列选择你想要筛选的聊天对象,单击 content列并复制到 message.txt文本中。

python3 process_wechat.py message.txt这时候会产生一个 __message.txt,就是处理完的聊天记录了。
这个上一篇博客已经讲过了,可以去看看:
https://godweiyang.com/2019/07/27/wordcloud/
最后的效果如图所示
