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

godweiyang:微信聊天记录导出为电脑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多张表格,每张表格就是你和一个人的单聊记录或者一个群组的聊天记录。

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

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

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

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

import jsonfin = 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

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

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

https://github.com/godweiyang/chatbot

粉丝群全部聊天记录

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

参考链接

https://blog.csdn.net/swinfans/article/details/88712593
https://www.jianshu.com/p/09a4c1f7c732

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

  1. ubuntu 下超简单的安装微信,QQ等软件

    Ubuntu 下超简单安装微信 QQ 等 Wine 软件的方法: 第一步,在终端中使用如下命令,添加软件仓库并自动刷新缓存: wget -O- https://deepin-wine.i-m.dev/ ...

  2. Mac导出微信聊天记录到world

    很多人都知道PC版微信软件可以对手机微信聊天记录进行备份,于是很多人产生了一个疑问,怎么在电脑上打开这些微信聊天记录进行查看呢?如何把这些记录保存到Word文档或txt文本中呢?如何导出里面的语音消息 ...

  3. 图像之超简单方式实现微信头像功能

    //直接使用下面函数就可以实现微信头像功能 //m文件 import "headImageViewController.h" @interface headImageViewCon ...

  4. 解密保存Mac版微信聊天记录的数据库文件并导出聊天记录

    MacOS版本的微信的聊天记录保存在如下路径中的数据库文件中: ~/Library/Containers/com.tencent.xinWeChat/Data/Library/Application\ ...

  5. 记录导出微信聊天记录到硬盘的过程

    文章目录 大家的问题 问题描述 解决思路 同步聊天记录 备份iPad到电脑 导出聊天记录 进一步需求 大家的问题 文章发出来后有一些大家遇到的典型的问题,先列写下来 没有文件夹权限,软件无法读取备份: ...

  6. 安全可靠快速地导出微信聊天记录

    12-2 现在微信上的消息非常多,不管是生活也好还是工作也好,大多数人基本上已不再使用QQ,并且即使使用QQ,它也自带了导出功能,而微信不带这个功能. 如果想要导出微信的聊天记录该咋办?或者说想要快速 ...

  7. mac安装telnet 超简单 复制telnet文件即可

    mac安装telnet 超简单 复制telnet文件即可: telnet 下载链接: https://github.com/cuifeiran/macos-telnet 将telnet可执行文件扔到m ...

  8. 绿皮书——iOS导出微信聊天记录,并用python制作词云

    The Green-Book--iOS微信聊天词云 引言 目录 1.提取微信聊天记录 1.1 iTunes备份 1.2 解密备份文件 1.3 找到指定好友 1.4 导出为xlsx 2.python读取 ...

  9. 【微信小程序系列】微信小程序超简单教程,基本语法,获取用户基本数据信息,实现对云数据库的增删改查及小程序外部api的引用示例(附源码)

    [微信小程序系列]微信小程序超简单教程 小程序项目结构 静态页面的构成 HTML:结构 css:样式 js:行为 小程序 页面全部存放在pages, 而且pages目录只能存放页面 页面包括4个文件, ...

最新文章

  1. “计算机艺术之父”、现代计算机技术先驱查理斯·苏黎去世,享年99岁!
  2. #Node.js的fs导入遇到的问题和解决方案
  3. MoeCTF 2021Re部分------RedC4Bomb
  4. 需求说明 用户登陆功能的实现 c#
  5. 如何正确认识大数据技术
  6. 十种UI设计常用字体特效,让你的设计高大上!【萧蕊冰】
  7. 【Linux】Ubuntu18.04深度学习环境配置+Google+TIM+搜狗输入法等安装方法
  8. SEO死链查询工具对网站的三大好处
  9. 【计算机网络】网关和路由器功能的有哪些不同
  10. 林燕妮: 一见杨过误终生
  11. 超级好用的cmd工具软件:Cmder
  12. C# 反序列化错误 System.Runtime.Serialization.SerializationException: 无法找到程序集
  13. 软件的性能指标及评估方法
  14. 部署k8s(16):集群调度策略的四种方案
  15. Kettle连接数据库(DB连接)
  16. 基于Python机器学习对某地区房地产数据分析预测报告
  17. CSAPP第三章之条件分支的两种实现方式
  18. 图像超分辨率重建之SRCNN
  19. math库的Python实现原理(ln(x)运算)
  20. JVM学习 谁是垃圾?判断对象是否能被垃圾回收 可达性分析 四大引用

热门文章

  1. 【先锋】犀思云张雄国:帮助企业更好地过渡到互联网时代
  2. html天气预报插件透明,宁国生活网精美天气预报插件,透明图标,昼夜有别
  3. 吴恩达机器学习(二十九)大规模机器学习
  4. 蓝桥杯c语言试题及答案 高职,2012.C语言‘蓝桥杯“预赛.真题.高职
  5. 深入理解js中的事件委托
  6. 几乎涵盖了近半年90%的Java面试题,可以肝起来了
  7. 淘宝镜像已经更改成Ruby China
  8. springboot+vue +医院门诊管理系统
  9. 数据库性能优化八大方案,你知道几个
  10. mac卸载npm和node