今是昨非

今是昨非

日出江花红胜火,春来江水绿如蓝

导出iPhone所有短信到Excel

导出 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 格式的文件。

导出短信

这样就获取到了所需的短信样本。

参考#

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。