Cómo obtener y almacenar en un documento .csv Tweets sobre una temática

Si necesitas ayuda esta disponible el siguiente video explicativo: https://www.youtube.com/watch?v=SJ2KtPdaGWY.

1. Objetivo

En este proyecto vamos a generar una pequeña investigación desde el punto de vista del Big Data y de las redes sociales. Exactactamente, hemos utilizado Twitter como fuente textual, una red social en la que se pueden recolectar datos de forma más sencilla y, sobre todo, inmediata, necesario para establecer correlaciones temporales entre la evolución del virus y la opinión del mismo de la sociedad.

Esta plataforma permite el envío de mensajes en texto plano de corta longitud por parte de los usuarios, con un máximo de 280 caracteres. Estos mensajes, llamados tweets, se muestran en la página principal del usuario y pueden ser capturados a través de una API proporcionada por la propia red social.

Este ejemplo va a consistir en la implementación de un script en Python que almacene continuamente todos los tweets que se escriben sobre el Coronavirus en español.

2.Contexto

La temática elegida del proyecto ha sido la actual enfermedad Coronavirus o COVID19. Este virus ha entrado en la vida de todas las personas del planeta desde hace unos pocos meses, llevando su letalidad a parar las actividades normales de todo tipo (trabajos, rutinas…). En la actualidad, este es un tema recurrente y sobre el que se tiene información casi las 24 horas del día, debido a su notoriedad y magnitud.

Siguiendo esta premisa, nuestro objetivo va a consistir en la implementación de un script en Python que almacene continuamente todos los tweets que se escriben sobre el Coronavirus en español. Con este dataset se pueden analizar las distintas percepciones de los usuarios teniendo en cuenta la evolución del virus y sus consecuencias.

Además, ya que nos encontramos en una sociedad casi totalmente digital y acostumbrados a que los usuarios de las redes sociales están continuamente dando su punto de vista sobre la realidad, he considerado que obtener el pensamiento de ellos sobre este tema tan actual y notorio sería interesante.

Además, un conjunto de datos de este tipo permite realizar investigaciones y resolver preguntas como:

  • ¿Cómo ha evolucionado el virus en España a nivel de Comunidad Autónoma y total?
  • ¿Cómo ha evolucionado el virus a nivel mundial?
  • ¿Qué repercusión en la opinión social han tenido los cambios (positivos o negativos) del virus?
  • ¿Cómo se sienten las personas respecto al progreso del virus a nivel autonómico? ¿Y mundial?

3. Implementación

El programa que he utilizado se puede consultar y descargar desde la URL https://github.com/al118345/Tweepy_Example

3.1 Conseguir los API keys y Token de tu cuenta de Twitter

Las claves que necesitamos para poder utilizar este programa son las siguientes:

  • Consumer Key (API Key)
  • Consumer Secret (API Secret)
  • Access Token
  • Access Token Secret

Para ello, tendremos que acceder al centro de desarrolladores de aplicaciones de Twitter de la siguiente url: https://apps.twitter.com donde empezaremos todo el proceso.

Pinchamos en el botón Create new App y aparecerá una ventana donde se deberán escribir la siguiente información:

  • Name: Nombre cualquiera que daremos a la nueva aplicación o proceso.
  • Description: Una descripción que resuma la aplicación que vamos a crear, si no vamos a crear ninguna aplicación y sólo queremos las claves, puedes poner lo que quieras.
  • Website: El nombre de la web donde utilizarás las claves.

El resultado obtenido se mostrará en la siguiente imagen

Resultado Create new App
1 Resultado al crear una nueva aplicación en la web https://apps.twitter.com

Como se puede observar, pueden ser inventados, es decir, no hace falta utilizar datos reales. Lo importante es rellenarlos para poder tener una cuenta de desarrollador. Una vez obtenida, ya podremos ver nuestra clave Api o Api Key (Consumer Key)

    Resultado al crear una nueva aplicación en la web twitter
2 Resultado al crear una nueva aplicación en la web https://apps.twitter.com

Pinchando en la pestaña llamada Keys and Access Token accedemos a los datos que nos faltan. Podremos ver ahora tanto la clave Api como el secret Api (Consumer Secret).

 Keys and Access Token twitter
3 Keys and Access Token https://apps.twitter.com

Para conseguir el Token tenemos que desplazarnos hasta abajo de la página y pinchar en en el botón para poder conseguirlos. Y ya está, tenemos todos los datos para conectar con nuestra cuenta de Twitter.

Una vez generado, tenemos que modificar el fichero autenticate_example.py

  
def get_auth():
   consumer_key = ''
   consumer_secret = ''
   access_token = ''
   access_token_secret = ''
   auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
   auth.set_access_token(access_token, access_token_secret)
   return auth

Rellenada toda la información, el siguiente paso es cambiar el nombre al fichero por autenticate.py y ejecutar el siguiente comando en windows para instalar todas las librerías necesarias:

python get-pip.py install -r requirements.txt

En Linux se puede ejecutar el siguiente comando:

pip install -r requirements.txt

3.2 Ejecutar el programa

El siguiente punto es ejecutar el programa principal situado en el fichero Tweepy_ejemplo_2022.py. Este fichero tiene almacenado la siguiente consulta:

start_date = date(2020, 12, 24)
end_date = date.today()
tweets = []

for tweet in tweepy.Cursor(api.search_tweets, "pfizer sintomas",
                             ).items():
   if tweet.created_at.date() < end_date and tweet.created_at .date()> start_date:
        if tweet.text not in tweets:
                tweets.append(tweet)
                almacenar_tweet(tweet)

Cómo se puede observar, este programa está buscado todo los tweets publicados desde las fechas start_date y end_date y que contengan la palabra pfizer sintomas

El programa que he utilizado se puede consultar y descargar desde la URL https://github.com/al118345/Tweepy_Example/blob/master/Tweepy_ejemplo_2022.py