uma maneira muito simples de entender o que é um arquivo de banco de dados é pensar nele uma pasta que contém um monte de tabelas do tipo excel. Muito parecido com bases de dados maiores ou de qualidade empresarial você pode conectar e acessar os dados na base de dados de uma variedade de maneiras.

usando Python e pandas

neste tutorial, eu estou usando Python e o incrível módulo pandas para se conectar ao banco de dados, explorar as tabelas e dados que ele detém e, em seguida, ler esses dados das tabelas apropriadas.,

acima conectamos à base de dados e exploramos quais as tabelas que estão lá. Descobri que existem algumas tabelas na base de dados, incluindo uma chamada mensagem e outros nomes chat, manejo e anexo. Vamos explorar a mesa de mensagens porque essa é a que parece mais promissora para manter nossas mensagens. Faço isso transferindo a tabela para um dataframe pandas, um tipo de arquivo que é muito mais fácil de explorar e manipular para projetos de análise de dados.

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

Getting the message text and phone number

we hit bingo!, A tabela de mensagens realmente parece conter todas as mensagens salvas. Tem um campo de texto com a mensagem enviada ou recebida, um campo de data (mais sobre o abaixo) e um identificador de pega. Depois de um pouco de exploração, descobri que o handle_id é um código para cada número de telefone ou Apple-id com o qual você teve uma conversa. A fim de mapear o handle_id de volta para o Apple-id podemos usar uma tabela na base de dados (apropriadamente) chamada pega e juntar em handle_id.

adicionando um ID de bate-papo

similarmente, a tabela de mensagens também inclui um chat_id que mapeia cada mensagem de volta para um chat único., Isto pode ser útil quando se faz análise em conversas com várias pessoas nelas. Podemos obter o chat_id de cada mensagem juntando a tabela de mensagens com a (mais uma vez, devidamente nomeada) tabela chat_message_join na message_id.

recebendo a data

a tabela de mensagens também inclui uma coluna de data e isso foi um pouco complicado para mim para descodificar, uma vez que não é exatamente em qualquer formato que é amplamente utilizado na indústria. Além disso, a forma como esta coluna é gravada é um pouco diferente na versão mais recente do Mac OS X em comparação com os mais antigos.,

Credit to this stackoverflow page that helped me figure this out.

nas versões Mac OS X antes de High Sierra (que é a versão 10.13 e lançada em setembro de 2017), A coluna Data é um tipo de época, mas, ao contrário do padrão de contar os segundos de 1970-01-01, está contando os segundos de 2001-01-01., A fim de converter-se que digitar em um campo de dados, podemos realmente compreender, podemos usar um comando ao consultar a tabela de mensagens para criar um novo campo (vamos chamá-lo de date_utc, pois está dando um UTC fuso horário a data do resultado), com base no campo de data.

In Mac OS X High Sierra and above, it’s the same thing but the date format is now much more granular: it is in nano-second level. Então agora precisamos dividir por antes de aplicar o mesmo trecho de código que aplicamos acima.,

Juntando tudo

pode encontrar aqui o bloco de notas com todo o código para que possa extrair as suas mensagens do seu portátil e começar a analisar!

ele deve levar apenas alguns minutos e no final dele você deve ter um histórico básico de seus dados de iMessage que inclui o número de telefone (ou e-mail), o texto, um chat único para cada grupo único de pessoas com quem você teve uma conversa e o timestamp (no horário UTC) de cada mensagem enviada.

Você pode realmente encontrar mais dados na base de dados, tais como detalhes se a mensagem foi entregue e lida, bem como anexos., Não vou tocar nesses atributos neste post.

Articles

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *