velmi jednoduchý způsob, jak pochopit, co je databáze soubor je myslet na to složku, která obsahuje spoustu excel jako tabulky. Stejně jako větší nebo podnikové databáze můžete připojit a přistupovat k datům v databázi různými způsoby.

pomocí Pythonu a pandy

v tomto tutoriálu používám Python a úžasný pandy modul pro připojení k databázi, prozkoumání tabulek a dat, která drží, a poté si tato data přečtěte z příslušných tabulek.,

výše se připojíme k databázi a prozkoumáme, jaké tabulky jsou tam. Zjistil jsem, že existuje několik tabulek v databázi, včetně jednoho s názvem zprávy a další jména chatu, rukojeť a přílohu. Pojďme prozkoumat tabulku zpráv, protože to je ten, který zní nejslibněji držet naše iMessages. Já, že převodem tabulky do pandy datovém typu souboru, který je mnohem jednodušší, aby prozkoumala a manipulovat pro data s projekty.

# get the 10 entries of the message table using pandas
messages = pd.read_sql_query("select * from message limit 10", conn)

získání textu zprávy a telefonního čísla

zasáhli jsme bingo!, Zdá se, že tabulka zpráv skutečně drží všechny uložené iMessages. Má textové pole se skutečnou odeslanou nebo přijatou zprávou, datovým polem (více o tom níže) a ID rukojeti. Po malém průzkumu jsem zjistil, že handle_id je Kód pro každé telefonní číslo nebo Apple-id, se kterým jste měli rozhovor. Abychom mapovali handle_id zpět na Apple-id, můžeme použít tabulku v databázi (vhodně) s názvem handle a připojit se k handle_id.

přidání id chatu

podobně tabulka zpráv obsahuje také chat_id, který mapuje každou zprávu zpět do jedinečného chatu., To může být užitečné při analýze chatů s více lidmi v nich. Chat_id každé zprávy můžeme získat spojením tabulky zpráv s (opět vhodně pojmenovanou) tabulkou chat_message_join na message_id.

získání data

tabulka zpráv obsahuje také sloupec data a to bylo pro mě trochu obtížné dekódovat, protože to není přesně v žádném formátu, který je v průmyslu široce používán. Navíc způsob, jakým je tento sloupec zaznamenán, je v novější verzi Mac OS X ve srovnání se staršími trochu odlišný.,

kredit na tuto stránku stackoverflow, která mi pomohla přijít na to.

V systému Mac OS X verze před High Sierra (což je verze 10.13 a propuštěn v září 2017), datum sloupec je epocha typu ale, na rozdíl od standardní počítání sekund od 1970-01-01, to je počítání sekund od 2001-01-01., Aby bylo možné převést tento typ do pole dat můžeme skutečně pochopit, můžeme použít příkaz při dotazování zprávu tabulce vytvořit nové pole (budeme říkat date_utc, protože to dává UTC časové pásmo datum jako výsledek) na základě pole s datem.

V Mac OS X High Sierra a výše je to totéž, ale formát data je nyní mnohem zrnitější: je v nano-druhé úrovni. Takže teď musíme rozdělit 1,000,000,000 než použijeme stejný úryvek kódu, který jsme použili výše.,

dát to všechno dohromady

notebook najdete zde se všemi kódy, abyste mohli extrahovat své iMessages z notebooku a začít analyzovat!

To by mělo trvat jen pár minut a do konce, měli byste mít základní historii své iMessage data, která obsahuje telefonní číslo (nebo e-mailem), text, jedinečný chat pro každého unikátní skupina lidí, popovídali si s a razítko (v UTC časové pásmo) každá odeslaná zpráva.

v databázi můžete skutečně najít více dat, například podrobnosti, pokud byla zpráva doručena a přečtena, stejně jako přílohy., Nedotýkám se těchto atributů na tomto příspěvku.

Articles

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *