Descarga información de Twitter sin autentificarte usando Python

Twitter tiene una API que puedes usar. Pero, en mi opinión, tiene varios problemas. Algunos de ellos son:

  • Privacidad: si usas su API, Twitter sabe lo que estás buscando, cuando lo estás buscando,…
  • Limitaciones: su API limita algunas de las cosas que puedes obtener.

twint al rescate

twint es una herramienta de scraping avanzado de twitter escrito en Python. Para el que no lo sepa y definido de forma muy somera, el scraping es una técnica que recoge información de sitios web simulando el comportamiento de un humano al navegar.

La información de nuestros seguidores en Twitter

Veamos una introducción muy simple a twint descargando la información principal del perfil de nuestros seguidores (a fecha 2019-12-22).

Primero deberíamos instalar twint. Lo podemos hacer fácilmente usando pip. En un entorno virtual nuevo podríamos hacer lo siguiente:

Una vez instalado podemos usar twint desde la línea de comandos o como una biblioteca dentro de tu programa Python. Probemos la segunda opción y para ello deberemos, primero, importar la biblioteca:

Configuramos lo que vamos a hacer. Podemos buscar tuits, usuarios,… Como he comentado, quiero obtener información de los seguidores de Pybonacci en Twitter:

Creamos un objeto Config y lo vamos a ajustar para que haga lo que queremos:

Como usuario introduzco el de Pybonacci en Twitter, que es lo que usamos en el handle sin la arroba, es decir, "pybonacci". Luego le pido que me almacene la información en un DataFrame de pandas (sí, tiene integración con pandas 🙂 ). Por último, como lo que quiero es la información de los seguidores de Pybonacci le pido que me dé su perfil completo usando la opción User_full. Podéis ver las opciones de configuración aquí.

Una vez lo tenemos configurado con nuestras necesidades es cuando empezamos a recabar información. Lo hacemos de la siguiente forma:

Y eso empezará a descargar la información de nuestros seguidores (Followers). Podemos hacer búsquedas de tuits, perfiles, favoritos, seguidores, personas a las que seguimos,…

Cuando haya terminado de descargar la información podéis acceder a la misma de la siguiente forma:

Y ahora ya tenéis la información en un DataFrame de pandas. La podemos guardar en un fichero en formato, por ejemplo, *.csv usando:

Tened cuidado con el fichero recién creado puesto que entre los datos que se guardan está la biografía del usuario y puede contener comas, saltos de línea,… Cuando lo vayáis a leer, con pandas.read_csv por ejemplo, usad la opción quotechar='"' para que no os dé errores.

La información que hemos leído de los usuarios contiene:

  • Nombre
  • Nombre de usuario
  • Biografía
  • Una url que hayáis definido
  • Fecha y hora de registro en Twitter
  • Número de tuits
  • Localización
  • Número de cuentas que seguís
  • Número de cuentas que os siguen
  • url de vuestro avatar

La documentación de twint no es maravillosa pero es más que suficiente. La podéis encontrar en el README o en la wiki del proyecto en github.

Espero que os haya abierto el apetito y que vuestras curiosas mentes se lancen a analizar información de Twitter sin pedirles permiso. También espero que me lo contéis o se lo contéis a otros.

Deja una respuesta

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

35 − twenty six =