將 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 格式的文件。
這樣就獲取到了所需的短信樣本。