Quand Twitter rencontre Python!

Python_Twitter

Les journalistes adorent Twitter et les geeks aiment coder. Aujourd’hui, je réunis le meilleur des deux mondes! Au menu: des scripts pour utiliser Twitter à son plein potentiel!

C’est lorsque que mon amie @TerraCiolfe m’a montré le projet @WeAreTheDeads que je me suis dit qu’il fallait que j’apprenne à coder des scripts capable de contrôler Twitter. @WeAreTheDeads est un compte qui publie à la onzième minute de chaque heure le nom d’un soldat canadien mort en service.

Évidemment, personne n’est derrière l’écran 24h sur 24h. Un programme se charge de choisir un soldat dans une base de données et publie ensuite son nom, heure après heure. Avec près de 119 000 noms à publier, le programme devrait prendre fin aux alentours de 2023, selon le journaliste à l’origine de cette superbe idée, @GlenMcGregor du Ottawa Citizen.

Avec un peu de recherche (mes source sont à la fin de l’article), j’ai appris à manipuler Twitter à partir de scripts Python. En fait, on peut faire bien plus qu’automatiser des tweets! On peut aussi extraire toutes sortes d’informations concernant les utilisateurs et leurs tweets. Il est également possible de faire des recherches très précises pour une zone géographique définie. Je vous ai fait une belle carte interactive à la fin! Vous allez voir!

PS: L’article est intéressant que l’on ait des bases en programmation ou non. Mais si vous voulez apprendre à refaire ce que j’explique ci-dessous, commencez par faire vos premiers pas en codage en suivant mon tutoriel.

#I La librairie Tweepy

Il existe plein de librairies pour Python qui servent à travailler avec Twitter. La compagnie les liste d’ailleurs sur son site web. Après avoir hésité pendant un long moment, j’ai finalement décidé d’utiliser Tweepy!

Vous devez l’installer avant de pouvoir l’utiliser.

Si vous avez pip, rien de plus facile. Tapez la ligne suivante dans votre Terminal ou dans votre Console de commande:

Si vous n’avez pas pip, installez-le! C’est fantastique pour installer des libraires et modules externes! Sinon, rendez-vous sur la page GitHub de Tweepy. Vous y trouverez les informations nécessaires.

#II Twitter Apps

Vous devez aussi vous créer une application Twitter en allant sur https://apps.twitter.com/. C’est elle qui fera le lien entre votre script et Twitter.

Cela va vous permettre d’obtenir votre consumer key, votre consumer secret ainsi que de votre access token et de votre access token secret. Sans ça, vous ne pourrez pas vous identifier!

Token

Ce faisant, n’oubliez pas d’autoriser votre application à non seulement lire des status mais aussi à en écrire en votre nom.

#III Envoyer un tweet

Vous êtes maintenant prêt à un envoyer un tweet! On commence par importer Tweepy à la ligne 1, on s’identifie à la ligne 3,4 et 6. Puis on publie un tweet aux lignes suivantes!

Et voici le résultat:

tweet example

Évidemment, ça n’a pas beaucoup d’intérêt pour l’instant. Pour que ça soit vraiment utile, il faudrait intégrer ce code dans un programme plus imposant, qui réagirait à quelque chose (un communiqué de la police, des pompiers, un tweet d’un autre utilisateur) ou qui serait à l’intérieur d’une boucle qui se répéterait un grand nombre de fois.

#IV Les données des utilisateurs

Twitter conserve toute sorte d’information à votre propos. À l’aide d’un script, vous pouvez récupérer tout ça pour n’importe utilisateur!

Voici, par exemple, un petit script qui va extraire les données du profil du premier ministre du Canada @pmharper.

Voici le résultat:

Exemple harper

Mais il y a également de nombreuses informations dans les tweets eux-même! Voici un autre script qui va extraire les données des 200 derniers tweets du premier ministre. J’ai mis un petit délai d’une seconde pour que vous puissiez voir le script en action.

Voici le script qui roule. J’ai arrêté la vidéo après 1min. Je suis sûr que vous avez compris le concept!

Pour m’amuser un peu, j’ai fait un nuage de mots avec les personnes les plus nommées dans les 200 derniers tweets du premier ministre. Sa femme trône en tête! Le président français, de passage récemment, a été mentionné plusieurs fois aussi.

Intéressant tout ce qu’on peut faire, non?

Nuage de mots

#V Faire des recherches localisées

Vous avez sans doute déjà vu ces cartes magnifiques avec des milliers de tweets localisés, parfois mises à jour en temps réel. Elles sont possibles parce que Twitter récupère la latitude et la longitude des tweets, quand l’utilisateur accepte de les fournir (Le premier ministre, plus haut, a désactivé cette fonction par exemple). Mais en plus, Twitter les classe!

Rien ne vaut un bon exemple. Le code ci-bas va chercher les coordonnées géographiques des 100 derniers tweets publiés au Canada, car l’id du Canada pour Twitter est 3376992a082d67c7 (pour plus d’infos à ce sujet, allez voir la documentation officielle de Twitter). Par soucis de respect de la vie privée, je ne vais pas chercher d’autres informations ici.

J’ai modifié le code ci-dessus pour récupérer environ 1500 tweets, puis j’ai envoyé leurs coordonnées et leur heure de publication dans CartoDB (dont je vous avais parlé dans un précédent article). Voilà le résultat! Une belle petite carte avec des tweets géolocalisés, qui apparaissent en fonction de leur heure de publication! Zoomez pour voir à quel point c’est précis!

Sur ce, je vous laisse imaginer tout ce qu’il est possible de faire avec ces quelques lignes de codes! Longue vie à Python! Et suivez-moi sur Facebook, Twitter ou LinkedIn pour être tenu au courant de mes prochains articles.

À venir, un article qui vous montrera comment extraire des informations provenant de Twitter, en temps réel!

Voici les différents liens qui m’ont été très utiles (en plus du forum http://stackoverflow.com/):

– https://dev.twitter.com/overview/api

– http://tweepy.readthedocs.org/en/v3.1.0/getting_started.html

– https://github.com/tweepy

– http://www.pythoncentral.io/introduction-to-tweepy-twitter-for-python/

4 commentaires sur “Quand Twitter rencontre Python!

  1. Juvenal

    Bonjour Nael,
    merci pour ce tutoriel très intéressant.
    Cependant, j’aimerais savoir comment obtenir la liste des place_id pour la recherche. Là on a utilisé le canada comme critère de recherche, mais si je veux utiliser un autre pays, comment vais-je trouver son place_id?? le lien que tu as fourni ne donne pas la liste des codes pour chaque pays.
    Merci d’avance pour ta réponse.

    Répondre
  2. Mangnier

    Bonjour,

    Article très intéressant et inspirant pour d’autres projets.
    Concernant l’id du user où tu veux récupérer les tweets, comment le définis tu en amont?
    du style pmharper.id par exemple ?

    merci d’avance

    Loïc

    Répondre
  3. Rétrolien : Faire des trucs #1 : Générer des images grâce à du texte et les tweeter | | Julien Avenet - Ingénieur IT

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *