macOS wechat聊天记录导出
macOS 导出微信聊天记录
突然想到希望拿到微信的聊天记录,并制作词云图,看看平时微信消息说的最多的是什么
以下单纯记录过程步骤:
获取微信聊天记录
聊天记录位置
首先我们要知道,mac 微信的聊天记录都以数据库的形式保存在下面目录:
Containers 直接在文件夹中不可见,找不到不要慌,建议直接 terminal cd 访问
~/Library/Containers/com.tencent.xinWeChat/Data/Library/Application\ Support/com.tencent.xinWeChat/xxx/yyy/Message/*.db
所以我们只需要拿到这个目录下的所有形如msg_0.db
的数据库文件即可,但是都是加密的,所以我们要想办法拿到它们的密码。
破解密码并打开数据库
- 打开 mac 微信,但是不要登录。
- 打开终端,输入
sudo lldb -p $(pgrep WeChat)
。这时候可能会报错:error: attach failed: cannot attach to process due to System Integrity。不要慌,重启 mac 电脑,黑屏后一直按住Command+R
,直到出现恢复模式界面。点击顶部 Utilities 菜单,然后打开终端。最后输入csrutil disable; reboot
等待重启,重新执行开始的命令就行了。 - 进入 lldb 的子 shell 后,输入
br set -n sqlite3_key
,回车。 - 输入
c
,回车。 - 这时候会弹出微信登录界面,登陆就行了。登陆后可能会卡住,进不去微信,但不用管,继续下面的操作。
- 继续在 lldb 的子 shell 中输入
memory read --size 1 --format x --count 32 $rsi
,这时会输出类似如下信息:
1 |
|
- 用 python 处理上面的输出信息:
1 |
|
- 此时的输出就是数据库的密码
raw_key
,一定要记住。 8. 下载打开数据库的软件 DB Browser for SQLite,地址:https://sqlitebrowser.org/dl/
- 打开软件,打开数据库,选择上一小节中提到的形如
msg_0.db
的数据库文件。然后会让你输入密码,记住选择raw key
和SQLCipher 3 defaults
,这时候就能正常打开了。
导出聊天记录并分析
打开数据库后,可以看到有 200 多张表格,每张表格就是你和一个人的单聊记录或者一个群组的聊天记录。
选择文件-导出-表到json
,全选所有的表格,就可以将所有的聊天记录导出为 json 文件了。
再打开msg1.db
、msg_2.db
等类似数据库,全部导出到一个文件夹下。
然后用任意 ide 打开这个文件夹,我用的是 vscode。然后就可以根据你想导出的人的聊天记录中的某条语句,全局搜索它在哪个文件中。
然后就可以用下面代码将聊天记录转换成 txt 文本文件了:
1 |
|
输出结果 group.txt 就是所有的聊天记录了
制作词云图
思路:主要借助 python 的
jieba
做分词,pandas
numpy
实现计数,wordcloud
绘制词云图
代码参考: https://github.com/progerchai/wordcloud-py
通过pandas.DataFrame({*'*word*'*: words}).to_csv(”/path/xxxxx.txt”,sep=*'*\t*'*,index=False)
可以打印数据出来看看
词云图效果图展示:
感谢阅读,勘误、纠错或其他请联系progerchai@gmail.com,或者点击这里提 issue 给我
欢迎交流 👏,你的每一次指导都可以让我进步
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!