超简单:mac导出微信聊天记录(附上粉丝群全部聊天记录)

简介: 今天再给大家讲解一下如何直导出mac版本微信的聊天记录,当然如果你没有mac,那可以直接关闭这篇文章了。

之前给大家详细讲解过如何用小米手机导出微信聊天记录:

微信聊天记录导出为电脑txt文件教程

今天再给大家讲解一下如何直导出mac版本微信的聊天记录,当然如果你没有mac,那可以直接关闭这篇文章了。

文末附上了我粉丝群的全部聊天记录文件,大家可以看个乐呵,也可以拿去处理处理做成数据另供它用。

聊天记录位置


首先我们要知道,mac微信的聊天记录都以数据库的形式保存在下面目录:

~/Library/Containers/com.tencent.xinWeChat/Data/Library/Application\ Support/com.tencent.xinWeChat/xxx/yyy/Message/*.db

所以我们只需要拿到这个目录下的所有形如msg_0.db的数据库文件即可,但是都是加密的,所以我们要想办法拿到它们的密码。

破解密码并打开数据库


  1. 打开mac微信,但是不要登录。
  2. 打开终端,输入sudo lldb -p $(pgrep WeChat)。这时候可能会报错:error: attach failed: cannot attach to process due to System Integrity。不要慌,重启mac电脑,黑屏后一直按住Command+R,直到出现恢复模式界面。点击顶部Utilities菜单,然后打开终端。最后输入csrutil disable; reboot等待重启,重新执行开始的命令就行了。
  3. 进入lldb的子shell后,输入br set -n sqlite3_key,回车。
  4. 输入c,回车。
  5. 这时候会弹出微信登录界面,登陆就行了。登陆后可能会卡住,进不去微信,但不用管,继续下面的操作。
  6. 继续在lldb的子shell中输入memory read --size 1 --format x --count 32 $rsi,这时会输出类似如下信息:
0x000000000000: 0xab 0xcd 0xef 0xab 0xcd 0xef 0xab 0xcd
0x000000000008: 0xab 0xcd 0xef 0xab 0xcd 0xef 0xab 0xcd
0x000000000010: 0xab 0xcd 0xef 0xab 0xcd 0xef 0xab 0xcd
0x000000000018: 0xab 0xcd 0xef 0xab 0xcd 0xef 0xab 0xcd
  1. 用python处理上面的输出信息:
source = """
0x000000000000: 0xab 0xcd 0xef 0xab 0xcd 0xef 0xab 0xcd
0x000000000008: 0xab 0xcd 0xef 0xab 0xcd 0xef 0xab 0xcd
0x000000000010: 0xab 0xcd 0xef 0xab 0xcd 0xef 0xab 0xcd
0x000000000018: 0xab 0xcd 0xef 0xab 0xcd 0xef 0xab 0xcd
"""
key = '0x' + ''.join(i.partition(':')[2].replace('0x', '').replace(' ', '') for i in source.split('\n')[1:5])
print(key)
# 输出为:0xabcdefabcdefabcdabcdefabcdefabcdabcdefabcdefabcdabcdefabcdefabcd

此时的输出就是数据库的密码raw_key,一定要记住。8. 下载打开数据库的软件DB Browser for SQLite,地址:

https://sqlitebrowser.org/dl/
  1. 打开软件,打开数据库,选择上一小节中提到的形如msg_0.db的数据库文件。然后会让你输入密码,记住选择raw keySQLCipher 3 defaults,这时候就能正常打开了。

导出聊天记录并分析


打开数据库后,可以看到有200多张表格,每张表格就是你和一个人的单聊记录或者一个群组的聊天记录。image.png

选择文件-导出-表到json,全选所有的表格,就可以将所有的聊天记录导出为json文件了。

再打开msg1.dbmsg_2.db等类似数据库,全部导出到一个文件夹下。

然后用任意ide打开这个文件夹,我用的是vscode。然后就可以根据你想导出的人的聊天记录中的某条语句,全局搜索它在哪个文件中。

然后就可以用下面代码将聊天记录转换成txt文本文件了:

import json
fin = open("Chat_6ea1007e9a74fd049e11be33700d8dfd.json", "r")
fout = open("group.txt", "w")
results = json.load(fin)
for dic in results:
    if dic["messageType"] == 1:
        content = dic["msgContent"]
        if dic["mesDes"] == 1:
            msg = content.strip().split(":\n")[1].replace("\n", " ").replace("\r", " ")
        else:
            msg = content.strip().replace("\n", " ").replace("\r", " ")
        fout.write("{}\n".format(msg))

最后用我之前介绍过的词云就可以分析聊天记录里最常出现的词语是什么了,代码地址如下:

https://github.com/godweiyang/wordcloud

给大家看看我的粉丝群里最活跃的一位粉丝都爱说些什么:

image.png

你还可以用导出的文本数据干很多事,比如训练一个聊天机器人。代码我也开源出来了,不过你得先自己处理好训练数据:

https://github.com/godweiyang/chatbot

粉丝群全部聊天记录


我把我粉丝技术交流群一共10w多条聊天记录导出来了,从2020.5.5开始的,因为是群聊,所以也就直接公开了。在我公众号后台回复「777」获取。

参考链接


https://blog.csdn.net/swinfans/article/details/88712593

https://www.jianshu.com/p/09a4c1f7c732

相关文章
|
7月前
|
SQL 存储 数据库
SQL实践篇(二):为什么微信用SQLite存储聊天记录
SQL实践篇(二):为什么微信用SQLite存储聊天记录
435 1
|
7月前
|
SQL 关系型数据库 数据库
微信为什么使用 SQLite 保存聊天记录?
微信为什么使用 SQLite 保存聊天记录?
111 0
|
Web App开发 开发者
Mac Chrome crx(插件) 文件导出与导入
Mac Chrome crx(插件) 文件导出与导入
411 0
|
1月前
|
移动开发 小程序
仿青藤之恋社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
仿青藤之恋社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
61 3
|
2月前
|
前端开发 API UED
我写个HarmonyOS Next版本的微信聊天02
我写个HarmonyOS Next版本的微信聊天02
123 9
我写个HarmonyOS Next版本的微信聊天02
|
2月前
|
人工智能 安全 前端开发
我写个HarmonyOS Next版本的微信聊天01
我写个HarmonyOS Next版本的微信聊天01
80 1
我写个HarmonyOS Next版本的微信聊天01
|
2月前
|
移动开发 小程序 数据可视化
一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码
一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码
58 2
|
4月前
|
人工智能 小程序 Java
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
本文介绍了一款名为PyWxDump的开源工具,它可以获取微信账户信息、解密SQLite数据库以查看和备份聊天记录。此工具适用于已登录电脑版微信的用户,通过GitHub下载后简单几步即可操作。适合对数据恢复感兴趣的开发者,但请注意合法合规使用并尊重隐私。
639 2
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
|
4月前
|
前端开发
一键复制微信聊天框效果:HTML+CSS让网页聊天更生动!
一键复制微信聊天框效果:HTML+CSS让网页聊天更生动!
|
5月前
|
前端开发
css动画(仿微信聊天页面)
css动画(仿微信聊天页面)