Automatisation Tweeter

Rédigé par jeromef


03 avril 2014 Python, tutoriel python tweeter


Parcequ'une automatiqsation réussie est une bonne chose (cf cet excellent article sur venturebeat.com ) , que python est un outils parfait pour ca... on va voir comment mettre en branle tout ca au travers l'automatisation de Tweet depuis des infos collectées !
Pres ?...c'est parti

Contexte

J'utilise Gitghub et j'ai découvert il y a peu les "Trendings" projets par langage. Le principe est simple, c'est une remontée des projets les plus "forkés" (repris) pendant la semaine. C'est aussi une très bonne source d'inspiration pour la veille and co.
J'ai donc décidé d'automatiser un tweet qui va prendre les 3 premiers projets de cette liste et faire 4 tweets (Le premier pour citer les 3 projets et les 3 suivants pour détailler chacun de ce projets)

Librairies utilisées

Beautifulsoup4, urllib2, et Twython

Présuposés

Avoir un compte twitter et créé une application valide (tout est expliqué dans la partie "Beginning")

Code

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from twython import Twython
from bs4 import BeautifulSoup
import urllib2

# RAJOUTER L'IDENTIFICATION TWYTHON
APP_KEY = '###############################################################'
APP_SECRET = '###########################################################'
OAUTH_TOKEN = '##########################################################'
OAUTH_TOKEN_SECRET = '#################################################'

twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

def trendings(langage):
    """ Parsing du flux xml = rss podcast """
    # https://github.com/trending?l=python

    content = urllib2.urlopen('https://github.com/trending?l='+langage).read()
    soup = BeautifulSoup(content)
    elements = soup.findAll("div", { "class" : "leaderboard-list-content" })
    llarge = []
    lshort =[]
    
    for items in elements:
        titre = items.a['href']
        lshort.append(titre)
        descriptif = items.p.string
        lien = 'https://github.com'+items.a['href']+': '+descriptif
        large = lien.encode('utf-8')
        llarge.append(large)
    
    print "Les 3 Projets PYTHON de la semaine sur GITHUB:"+lshort[0]+", "+lshort[1]+", "+lshort[2]
    j=1
    while j<4:
        twitter.update_status(status="Trending Projet PYTHON #"+str(j)+" this week:"+projet[j]+"!")
        print "Projet #"+str(j)+": "+llarge[j]
        j=j+1
    
if __name__ == '__main__':
    trendingstotweet(python)
Pour détailler un peu le principe
- On récupère avec Beautifulsoup la partie de la page de Github qui nous interesse (la fonction de récupération accepte un paramètre = langage visé) - Dans cette partie récupérée (=soup) on récupère les éléments (items) qu'on insère dans des listes différentes pour les tweet - Connection à Tweeter avec Twython et envoi des différents tweet

Evolution

Mettre le script sur un serveur et modifier le crontab pour déclenchement de celui ci toutes les semaines. Pour info c'est fait et dispo sur mon twitter pour les projets python.

J'imagine qu'on doit pouvoir faire BEAUCOUP mieux... vos remarques, propositions, suggestions sont bienvenues voir souhaitées !

Partager cet article sur :


Les commentaires sont fermés.