En este artículo, discutiremos cómo exportar los chats de un usuario específico a una hoja de Excel . Para exportar los chats, usaremos varios módulos y bibliotecas de Python.
En el archivo de Excel, crearemos cuatro columnas: Fecha, Hora, Nombre y Mensaje. Crearemos estas columnas a través de Pandas, exportaremos todos los detalles del chat a sus respectivas columnas y usaremos Pushbullets para recuperar los datos usando la clave API.
Módulo necesario:
- Pandas : Pandas es una biblioteca de código abierto que se basa en la biblioteca NumPy. Es un paquete de Python que ofrece varias estructuras de datos y operaciones para manipular datos numéricos y series de tiempo.
pip install pandas
- pushbullet: Te permite enviar notificaciones push a dispositivos Android e iOS .
pip install pushbullet.py == 0.9.1
- openpyxl : es una biblioteca de Python con la que se pueden realizar múltiples operaciones en archivos de Excel, como lectura, escritura, operaciones aritméticas y trazado de gráficos. Veamos cómo realizar diferentes operaciones aritméticas usando openpyxl.
pip install openpyxl
Implementación paso a paso :
Paso 1: configure una cuenta Pushbullet en su PC y teléfono
Paso 2: Instale la aplicación Pushbullet en su teléfono. Inicie sesión con la misma dirección de correo electrónico que utilizó para iniciar sesión en su PC.
Paso 3: Después de crear una cuenta tanto en la computadora como en el teléfono.
Navegue a la opción Dispositivos en la esquina superior izquierda de su PC. Y luego seleccione Agregar un dispositivo y agregue su teléfono. Cuando agregue su teléfono, el nombre de su teléfono se mostrará allí.
Paso 4: ahora exporta las conversaciones del usuario específico.
Sigue estos pasos:
- Ve a la aplicación WhatsApp de tu teléfono .
- Seleccione el usuario cuya conversación desea exportar haciendo clic en su nombre.
- Ahora, en la esquina superior derecha, haz clic en los tres puntos.
- Seleccione Exportar chats en el menú que aparece cuando hace clic en más .
- Después de hacer clic en Exportar chats, aparecerá una lista de aplicaciones y debes seleccionar Pushbullet .
- Ahora puede ver un archivo de texto en Pushbullet.com en su PC que contiene los chats.
Paso 5: ahora, obtenga la clave API de Pushbullet.com
Abra Pushbullet.com en su PC y vaya a Configuración . Luego, desplácese hacia abajo y haga clic en Tokens de acceso. Haga clic en Crear token de acceso y copie el token
Paso 6: escriba el código para exportar el chat a Excel.
- Con PushBullet , autentique la clave ahora. Se lanza un InvalidKeyError si su clave no es válida (la API de Pushbullet devuelve 401 ).
Sintaxis: PushBullet(Tu_token_de_acceso)
- Puede obtener todas las inserciones anteriores creadas por usted, lo que implica todos los archivos que envió a Pushbullet, utilizando get_pushes . Sin embargo, queremos la inserción más reciente, que aparecerá en el índice ‘ 0 ‘ en una lista de todas las inserciones. Ahora que hemos recibido el envío más reciente, necesitamos recuperar la URL de nuestras conversaciones de exportación de Pushbullet, así que solo proporcione file_url .
Sintaxis:
pb.get_pushes() # Obtener todos los Empujes
all_pushes[0] # Obtener los últimos envíos
- Cree un archivo de texto para guardar todos los chats y luego use el método urlretrieve para recuperar todos los datos de la URL . urlretrieve acepta dos argumentos: la URL y el archivo de texto en el que guardar todos los datos.
Sintaxis: urllib.request.urlretrieve(Chats_URL, Text_file_name)
- Abra el archivo de texto y lea todos los datos línea por línea, utilizando la codificación utf8 para codificar los datos. Guardará el contenido del archivo de texto en formato de lista después de leerlo del archivo de texto. Debido a que el índice ‘ 0 ‘ contiene algo de texto basura , debemos eliminarlo utilizando la división de listas .
- Ejecute un bucle para extraer la fecha , la hora , el nombre y el mensaje de los datos del archivo mediante el corte de listas. Simplemente agréguelos a una lista una vez que se hayan extraído.
- Finalmente, use la biblioteca Pandas para construir un marco de datos que se usará para almacenar todos los datos en una hoja de Excel . pd.DataFrame acepta dos argumentos: una lista de texto y las columnas que se crearán en una hoja de Excel. Después de eso, solo use el método to_excel para guardarlos en un archivo de Excel.
A continuación se muestra la implementación completa:
Python3
# Import following modules import urllib.request import pandas as pd from pushbullet import PushBullet # Get Access Token from pushbullet.com Access_token = "Your Access Token" # Authentication pb = PushBullet(Access_token) # All pushes created by you all_pushes = pb.get_pushes() # Get the latest push latest_one = all_pushes[0] # Fetch the latest file URL link url = latest_one['file_url'] # Create a new text file for storing # all the chats Text_file = "All_Chats.txt" # Retrieve all the data store into # Text file urllib.request.urlretrieve(url, Text_file) # Create an empty chat list chat_list = [] # Open the Text file in read mode and # read all the data with open(Text_file, mode='r', encoding='utf8') as f: # Read all the data line-by-line data = f.readlines() # Excluded the first item of the list # first items contains some garbage # data final_data_set = data[1:] # Run a loop and read all the data # line-by-line for line in final_data_set: # Extract the date, time, name, # message date = line.split(",")[0] tim = line.split("-")[0].split(",")[1] name = line.split(":")[1].split("-")[1] message = line.split(":")[2][:-1] # Append all the data in a List chat_list.append([date, tim, name, message]) # Create a dataframe, for storing # all the data in a excel file df = pd.DataFrame(chat_list, columns = ['Date', 'Time', 'Name', 'Message']) df.to_excel("BackUp.xlsx", index = False)
Producción:
Publicación traducida automáticamente
Artículo escrito por gittysatyam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA