Au cas où un lecteur ait à disposition une machine qui puisse tourner sans s’arrêter sur les quinze prochains jours, histoire d’avoir une bonne fenêtre de tir…
1. Il vous faut un compte Twitter
À partir de votre compte Twitter, créez une application en vous rendant à cette adresse. Le compte en question doit être lié à un numéro de téléphone. Les autres informations à fournir ne sont pas importantes : donnez n’importe quel nom et description à l’application, cochez la case en dessous des conditions d’utilisation, et vous allez vous retrouver sur une page qui permet de récupérer ces deux informations :
Il vous faut l’information apparaissant sous les deux barres rouges.
2. Il vous faut le package R ROAuth
Dans R, installez le package ROAuth
, puis insérez vos deux codes dans les commandes suivantes :
# install.packages("ROAuth") library(ROAuth) requestURL = "https://api.twitter.com/oauth/request_token" accessURL = "https://api.twitter.com/oauth/access_token" authURL = "https://api.twitter.com/oauth/authorize" consumerKey = "" consumerSecret = "" my_oauth = OAuthFactory$new(consumerKey = consumerKey, consumerSecret = consumerSecret, requestURL = requestURL, accessURL = accessURL, authURL = authURL)
Une fois ces commandes exécutées, exécutez celle-ci :
my_oauth$handshake(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl"))
Votre navigateur va s’ouvrir et vous offrir un code PIN à rentrer dans R :
Une fois que c’est fait, sauvegardez le résultat :
save(my_oauth, file = "oauth.rda")
Et vous y êtes presque.
3. Il vous faut le package R streamR
Le petit bout de code expliqué ci-dessus traînait sur mon disque dur. Je ne me souviens pas de la source exacte, mais c’était sans doute un tutoriel de Pablo Barbera. Le même a écrit le package streamR
, qui va vous permettre de récupérer une sélection de tweets identifiés par les mots-clés et hashtags des élections départementales. Installez le package, puis lancez cette boucle :
# install.packages("streamR") library(streamR) # load credentials load("my_oauth.Rdata") # scrape for 15 days for(i in (15 * 24 * 2):1) { n = sprintf("%03.0f", i) f = paste0("tweets", n, ".json") cat(n, "scraping to", f, "...\n") filterStream(f, track = c("départementales", "departementales", "#departementales2015", "#departementales", "#départementales2015", "#départementales", "#dep2015"), timeout = 60 * 25, oauth = my_oauth) # leave five minutes out Sys.sleep(60 * 5) }
La boucle produit un fichier toutes les 25 minutes et ignore dix minutes d’information par heure, histoire de laisser l’API de Twitter souffler un peu. Les résultats ne sont pas limités aux tweets en français, mais vous aurez tout le loisir de faire le tri plus tard.
Un petit test effectué ce samedi m’a renvoyé un peu plus de 4 600 résultats de bonne qualité (dont 4 100 en français) en moins de six heures. Il est très facile d’explorer ce genre de données en utilisant, par exemple, environ 700 comptes Twitter d’élus et de partis politiques français, afin de voir s’ils sont souvent retweetés :
Le codage ci-dessus est très incomplet : je n’ai codé que les comptes Twitter des médias les plus évidents (presse quotidienne, chaînes de télévision et quelques médias en ligne), et n’ai inclus dans la catégorie “Officiels” que le seul compte Twitter du Ministère de l’Intérieur. Récoltez les données demain et les jours suivants, et vous aurez un bon matériau pour faire beaucoup mieux.
OpenEdition vous propose de citer ce billet de la manière suivante :
François (21 mars 2015). Récupérer les tweets des élections départementales. Polit’bistro. Consulté le 18 janvier 2025 à l’adresse https://doi.org/10.58079/syqt