una forma muy simple de entender lo que es un archivo de base de datos es pensar en una carpeta que contiene un montón de tablas similares a excel. Al igual que las bases de datos más grandes o de nivel empresarial, puede conectarse y acceder a los datos de la base de datos de varias maneras.

usando Python y pandas

en este tutorial, estoy usando Python y el increíble módulo pandas para conectarme a la base de datos, explorar las tablas y los datos que contiene y luego leer esos datos de las tablas apropiadas.,

arriba nos conectamos a la base de datos y exploramos qué tablas hay allí. Encontré que hay algunas tablas en la base de datos, incluyendo una llamada mensaje y otros nombres de chat, manejar y archivo adjunto. Exploremos la tabla de mensajes porque esa es la que suena más prometedora para mantener nuestros iMessages. Lo hago transfiriendo la tabla a un DataFrame pandas, un tipo de archivo que es mucho más fácil de explorar y manipular para proyectos de Data analyis.

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

obtener el texto del mensaje y el número de teléfono

llegamos bingo!, La tabla de mensajes de hecho parece contener todos los iMessages guardados. Tiene un campo de texto con el mensaje enviado o recibido real, un campo de fecha (más sobre eso a continuación) y un identificador de usuario. Después de una pequeña exploración descubrí que el handle_id es un código para cada número de teléfono o Apple-id con el que has tenido una conversación. Para mapear el handle_id de nuevo al Apple-id podemos usar una tabla en la base de datos (apropiadamente) llamada handle y join en handle_id.

agregar un ID de chat

de manera similar, la tabla de mensajes también incluye un chat_id que asigna cada mensaje a un chat único., Esto puede ser útil al hacer análisis en chats con varias personas en ellos. Podemos obtener el chat_id de cada mensaje uniendo la tabla message con la tabla chat_message_join en message_id.

obtener la fecha

la tabla de mensajes también incluye una columna de fecha y esto fue un poco difícil de decodificar para mí, ya que no está exactamente en ningún formato que sea ampliamente utilizado en la industria. Además, la forma en que se registra esta columna es un poco diferente en la versión más reciente de Mac OS X en comparación con las más antiguas.,

crédito a esta página de stackoverflow que me ayudó a resolver esto.

en las versiones de Mac OS X anteriores a High Sierra (que es la versión 10.13 y lanzada en septiembre de 2017), la columna de fecha es un tipo de época, pero, a diferencia del estándar de contar los segundos de 1970-01-01, está contando los segundos de 2001-01-01., Para convertir ese tipo en un campo de datos, podemos comprender que podemos usar un comando mientras consultamos la tabla de mensajes para crear un nuevo campo (lo llamaremos date_utc, ya que está dando una fecha de zona horaria UTC como resultado) basado en el campo de fecha.

en Mac OS X High Sierra y superiores, es lo mismo, pero el formato de fecha es ahora mucho más granular: es en nano-segundo nivel. Así que ahora tenemos que dividir por 1,000,000,000 antes de aplicar el mismo fragmento de código que aplicamos anteriormente.,

poniéndolo todo junto

puedes encontrar el cuaderno aquí con todo el código para que puedas extraer tus iMessages de tu computadora portátil y comenzar a analizar!

solo debe tomar unos minutos y al final de ella debe tener un historial básico de sus datos de iMessage que incluye el número de teléfono (o correo electrónico), el texto, un chat único para cada grupo único de personas con las que tuvo un chat y la marca de tiempo (en la zona horaria UTC) de cada mensaje enviado.

en realidad puede encontrar más datos en la base de datos, como detalles si el mensaje fue entregado y leído, así como archivos adjuntos., No voy a tocar esos atributos en este post.

Articles

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *