o modalitate foarte simplă de a înțelege ce este un fișier de bază de date este să vă gândiți la un folder care conține o grămadă de tabele asemănătoare excel. La fel ca bazele de date mai mari sau de nivel enterprise, puteți conecta și accesa datele din Baza de date într-o varietate de moduri.

folosind Python și panda

În acest tutorial, folosesc Python și uimitorul modul panda pentru a mă conecta la baza de date, pentru a explora tabelele și datele pe care le deține și apoi pentru a citi aceste date din tabelele corespunzătoare.,mai sus ne conectăm la baza de date și explorăm ce tabele sunt acolo. Am constatat că există câteva tabele în baza de date, inclusiv un mesaj numit și alte nume de chat, mâner și atașament. Să explorăm tabelul de mesaje, deoarece acesta este cel care sună cel mai promițător pentru a ne ține iMessages. Fac asta prin transferul tabelului într-un cadru de date panda, un tip de fișier care este mult mai ușor de explorat și manipulat pentru proiectele de analiză a datelor.

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

obținerea textului mesajului și a numărului de telefon

am lovit bingo!, Tabelul de mesaje pare într-adevăr să dețină toate iMessages salvate. Are un câmp text cu mesajul efectiv trimis sau primit, un câmp de dată (mai multe despre cel de mai jos) și un ID de mâner. După un pic de explorare am constatat că handle_id este un cod pentru fiecare număr de telefon sau Apple-id-ul pe care le-ați avut o conversație cu. Pentru a mapa handle_id înapoi la Apple-id – ul putem folosi un tabel în baza de date (în mod corespunzător) numit mâner și să se alăture pe handle_id.

adăugarea unui ID de chat

în mod similar, tabelul de mesaje include, de asemenea, un chat_id care mapează fiecare mesaj înapoi la chat-ul unic., Acest lucru poate fi util atunci când faceți analize pe chat-urile cu mai multe persoane din ele. Putem obține chat_id-ul fiecărui mesaj prin alăturarea tabelului de mesaje cu tabelul chat_message_join (din nou, numit corespunzător) din message_id.

Noțiuni de bază Data

tabelul de mesaje include, de asemenea, o coloană dată și acest lucru a fost un pic dificil pentru mine să decodeze, deoarece nu este exact în orice format care este utilizat pe scară largă în industrie. Mai mult, modul în care este înregistrată această coloană este puțin diferit în versiunea mai nouă a Mac OS X în comparație cu cele mai vechi.,

Credit la această pagină stackoverflow care ma ajutat să dau asta.

Mac OS X versiunile înainte High Sierra (care este versiunea 10.13 și lansat în septembrie 2017), la data de coloană este o epocă de tip, dar, spre deosebire de standard de numărare secunde de la 1970-01-01, este de numărare secunde de la 2001-01-01., În scopul de a converti acest tip într-un câmp de date de fapt putem înțelege, putem folosi o comandă în timp ce interogarea mesaj de masă pentru a crea un câmp nou (o vom numi date_utc, deoarece este oferindu-un UTC fus orar data ca un rezultat) bazat pe câmpul data.

în Mac OS X High Sierra și mai sus, este același lucru, dar formatul datei este acum mult mai granular: este în nivelul nano-al doilea. Deci, acum trebuie să împărțim cu 1,000,000,000 înainte de a aplica același fragment de cod pe care l-am aplicat mai sus.,

punând totul împreună

puteți găsi notebook-ul aici cu tot codul pentru a vă extrage iMessages – urile de pe laptop și a începe să analizați!

ar trebui să dureze doar câteva minute și până la sfârșitul acesteia ar trebui să aveți un istoric de bază al datelor iMessage care include numărul de telefon (sau e-mailul), textul, un chat unic pentru fiecare grup unic de persoane cu care ați avut un chat și marcajul de timp (în fusul orar UTC) al fiecărui mesaj trimis.de fapt, puteți găsi mai multe date în baza de date, cum ar fi detalii dacă mesajul a fost livrat și citit, precum și atașamente., Nu mă ating de aceste atribute pe acest post.

Articles

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *