导出 iPhone 所有短信到 Excel#
打算找一些短信,用于作为样本训练识别。
一开始打算网上找到垃圾短信样本,但找了好久没找到,于是就想到用自己和家人手机里的短信,毕竟手机里短信一般不删除,也有小几千条,而且垃圾短信、推销、广告之类的应有尽有。
所以问题就变成了,如何导出 iPhone 短信?
这里笔者也查了好久,找到的第三方软件基本都是需要收费,最终发现了一个免费导出的方案。
首先不加密备份手机到电脑,如下图,选中Back up all the data on your iPhone to this Mac
,点击Back Up Now
,等待备份完成,备份完成后,再点击Manage Backups
Manage Backups
点击后,界面如下,可以看到已备份的记录,右键选择Show In Finder
,在文件夹中打开
然后可以看到备份所在目录已打开,这时候需要找到文件名为3d0d7e5fb2ce288813306e4d4636395e047a3d28
的文件,这个文件就是短信备份的数据库文件。然后问题来了,怎么找呢?看到备份目录一个个文件夹是不是懵,这怎么找,很简单,搜索,点击右上角的搜索,直接把这个文件名输入即可,注意搜索的范围是当前文件夹,
搜索结果如下:
然后把这个文件单独拷贝到另一个地方,比如桌面,再用数据库软件打开,比如SQLPro for SQLLite
,打开如下:
然后观察这个文件后发现,手机号和短信记录分布在不同表中,需要写一个 SQL 查出需要的内容,SQL 内容如下,参考SQL to extract messages from backup,选中上图中Query
,输入命令如下:
SELECT datetime(message.date, 'unixepoch', '+31 years', '-6 hours') as Timestamp, handle.id, message.text,
case when message.is_from_me then 'From me' else 'To me' end as Sender
FROM message, handle WHERE message.handle_id = handle.ROWID AND message.text NOT NULL;
然后点击右上角的执行,可以看到,把短信都筛选出来了
然后选中所有 row,右键选择Export result set as
导出CSV
,即可导出 excel 格式的文件。
这样就获取到了所需的短信样本。