| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
API No Oficial en Python para recopilar los threads de perfiles de usuario y analizar la data correspondientes.
El script realiza las siguientes acciones:
Este script se ejecuta desde la línea de comandos de la siguiente manera:
python <get_user_profile_threads>.pyEste script depende de los siguientes paquetes de Python:
Para instalar estas dependencias, puede usar el siguiente comando:
pip install pandas asynciofrom get_user_profile_threads import get_user_profile_threads
import asyncio
import pandas as pdImportamos las bibliotecas y funciones necesarias para el script. Esto incluye get_user_profile_threads (una función personalizada que debe estar definida en un archivo en el mismo directorio), así como las bibliotecas estándar de Python asyncio y pandas.
threads_data = asyncio.run(get_user_profile_threads())Recoge los datos de los threads del perfil de un usuario utilizando una función asíncrona.
if threads_data is not None:
cleanThreads = []
likesData =[]
chars = ['"', "'", '}', '{', 'text', '\n', ':', '\'', '\"']Si threads_data no está vacío, el script crea dos listas vacías, cleanThreads y likesData. La lista chars define los caracteres que se eliminarán del texto del thread.
El siguiente bloque de código procesa cada thread en threadsData, limpia el texto y recoge los datos de "me gusta".
for thread in threadsData:
for char in chars:
thread = str(thread).lstrip(' ')
thread = str(thread).replace(char, '').lstrip('"\'')
if ', likes' in thread:
split_data = thread.split(', likes')
cleanThreads.append(split_data[0])
likesData.append(split_data[1])
else:
cleanThreads.append(thread)
likesData.append('0')df = pd.DataFrame({
'Text': cleanThreads,
'Likes': likesData
})Se crea un DataFrame de Pandas con los datos de texto limpios y los "me gusta".
df['Text'] = df['Text'].replace('\\\\n', '', regex=True)
df['Text'] = df['Text'].replace('\\\\n\\\\n', '', regex=True)
Eliminamos los valores nulos del dataframe con drop.na(), luego creamos una expresión regular para eliminar los saltos de línea \n y los saltos de línea dobles consecutivos \n\n
df.to_csv('./data/data.csv', index=False,header=False)Por último, el script exporta el DataFrame a un archivo CSV, sin índice ni encabezado, para su posterior análisis, en el archivo threads.ipynb
Esta biblioteca actualmente tiene espacios reservados para las clases Extensions, Thread, y ThreadsUser y no realiza ninguna comprobación de errores o limitación de velocidad. Debes asegurarte de que tienes permiso para acceder a cualquier dato que solicites y manejar cualquier error devuelto por la API de threads.net.
Este proyecto es puramente educativo. Se trata de una implementación de la versión 1.0.4 del proceso de ingeniería inversa realizado por el usuario Daniel 1 en su repositorio en GitHub.
La base de este trabajo proviene de la documentación proporcionada en el blog Intuitive Explanations sobre ingeniería inversa, descrita en el artículo "Reverse Engineering the Facebook Messenger API".
De acuerdo con el artículo, la ingeniería inversa es ética, pro-democrática y está protegida bajo la ley de Estados Unidos, pero aún es necesario ejercer integridad y responsabilidad al interactuar con cualquier sistema en línea. El comportamiento irresponsable, como enviar spam a otros usuarios, descargar datos de las personas sin su consentimiento o poner una carga indebida en la infraestructura que no estás pagando, es inapropiado independientemente de cómo se logre.
La ingeniería inversa, cuando se usa correctamente, es una forma de dar a uno mismo y a otros una mayor agencia, libertad y creatividad en línea. Sin embargo, Facebook a menudo suspende o prohíbe automáticamente a las personas que interactúan con su API de una manera que les parece sospechosa, incluso si no están haciendo nada malo. Por lo tanto, se recomienda explorar con precaución.
Para más detalles y para entender el proceso de ingeniería inversa llevado a cabo, recomendamos leer el artículo completo en Intuitive Explanations.
El propósito de este proyecto es ayudar a las personas a entender cómo funcionan las aplicaciones y los sistemas, y no se debe usar para violar la privacidad de otros usuarios ni abusar de las infraestructuras de sistemas ajenos. Los desarrolladores no se hacen responsables del mal uso de este código.
¿Encontraste una mejora que se puede implementar o te gustaría solicitar un cambio? Puedes abrir un Issue solicitando el cambio o enviar directamente un Pull Request con tu cambio.
Para cualquier duda o aclaración, puedes contactarme Fernanda Ochoa:
Email: fochoa@daliaempower.com | monsh8a@gmail.com
Twitter: @imonsh
Instagram: @fherz8a
Derechos de autor (c) 2023 Fernanda Ochoa
Este código está sujeto a la licencia MIT que se muestra arriba. Al utilizar este código, aceptas dar crédito al autor original mencionando su nombre en el código y en cualquier documentación relacionada con el proyecto.
| Back | FazBrowse Home | New Git URL |