Capítulo 8 Extracción de datos de Twitter

Actualmente es muy común extraer datos de aplicaciones web como Twitter a través de APIs (Aplication Programming Interface), ya que la mayoría de organismos y empresas tienen una o varias.

En este apartado nos centraremos en la obtención de datos de Twitter a través de su API pública. Para ello utilizaremos el paquete rtweet.

library(rtweet)

Lo primero que necesitarás para consultar la API será una cuenta en Twitter. Si no la tienes, tendrás que crear una.

A continuación, deberás solicitar una cuenta de desarrollador. Puedes hacerlo desde la dirección: https://developer.twitter.com/en/apply-for-access. Cuando tengas acceso, debes crear una nueva app. Una vez hayas llegado al final del proceso, tendrás las claves que necesitarás en los siguientes pasos para extraer los datos.

Comenzamos autenticándonos. Debemos introducimos tres datos: el nombre de la app, la API key y la API secret key.

appname <- "XXXXXXXXXX"
key <- "XXXXXXXXXX"
secret <- "XXXXXXXXXX"

Prueba a escribir un tweet desde R. Al ejecutar la función, se abrirá una ventana del navegador para autenticarte. Si funciona correctamente recibirás el mensaje: Authentication complete. Please close this page and return to R.

post_tweet("Escribo este tweet desde R!")

8.1 Usuarios a los que sigue una cuenta

Veamos ahora como obtener los identificadores de los usuarios a los que siguien una o varias cuentas, por ejemplo los que siguen la cuentas de la Facultat d’Informació i Mitjans Audiovisuals de la UB @FIMA_UB i la del Col·legi Oficial de Bibliotecaris i Documentalistes de Catalunya @cobdc.

following <- get_friends(c("fima_ub", "cobdc"))

8.2 Seguidores de una cuenta

De manera similar, se puede obtener el listado de seguidores (followers) de una cuenta:

followers <- get_followers("fima_ub")

8.3 Recuperación de tweets

Buscaremos ahora los tweets que mencionan diversas ciudades combinando sus nombres mediante operadores booleanos:

barcelona <- search_tweets(q = "barcelona")
barcelona_y_madrid <- search_tweets(q = "barcelona AND madrid")
barcelona_o_madrid <- search_tweets(q = "barcelona OR madrid")

Por defecto, la API pública de Twitter recupera los últimos 100 tweets. No obstante, este límite se puede ampliar hasta 18.000 tweets.

barcelona_2 <- search_tweets(q = "barcelona", n = 500)

Vamos a limitar la búsqueda a tweets en catalán, excluyendo los retweets:

search_tweets("barcelona", lang = "ca", include_rts = FALSE)

8.4 Otras búsquedas

Veamos ahora, de forma gráfica, la evolución cronológica por horas de los últimos 150 tweets publicados por la cuenta de “La Vanguardia”.

lavanguardia <- get_timeline("lavanguardia", n = 150)
ts_plot(lavanguardia, "hours")

También podemos observar la actividad en torno a tres tweets recientes publicados en la cuenta de la Facultad:

status_ids <- c("1375086465626091525", "1371816665550356480", "1370323578365829122")
lookup_tweets(status_ids)

De manera similar, podemos consultar la actividad reciente de algunos usuarios.

users <- c("lavanguardia", "fima_ub", "unibarcelona")
usr <- lookup_users(users)

Recuperamos ahora los últimos 500 tweets que mencionan la cuenta de la UB.

ub <- search_tweets(q = "unibarcelona", n = 500)

¿Quienes son los autores de estos tweets?

table(ub$screen_name)

8.5 Ejercicio 8. Extracción de datos de Twitter

Si no la tienes, crea una cuenta en Twitter y, a continuación, una app como desarrollador para poder interrogar l’API de Twitter. Identifica una cuenta que te interese y que tenga un cierto volumen de uso. Realiza un pequeño análisis sobre la actividad de esa cuenta (a quién sigue, por quién es seguida, quiénes son los usuarios que la mencionan, etc.).

De manera opcional, puedes hacer un análisis similar sobre algún hashtag de tu interés.