Introduction
De nombreux professionnels de l’informatique utilisent l’aggrégation RSS/Atom pour réaliser leur veille technologique. En Python, la bibliothèque Feedparser est largement utlisée à cet effet pour parser les données de type XML des flux RSS/Atom.
Je vous propose à travers cette article d’ajouter à votre veille, les données provenant de réseaux sociaux.
J’utilise ici l’excellente bibliothèque scientifique Pattern disponible à cette url : http://www.clips.ua.ac.be/pages/pattern. Et plus particulièrement le module pattern.web.
L’exercice est formalisé autour de l’écriture d’une classe simple permettant d’exploiter les résultats. La classe est directement testable sous Python 2.
Code de la classe Marmelade
Code:
# -*- coding: utf-8 -*- """ Created on Sun Dec 2 16:26:06 2012 @author: Julien Hautefeuille pip install pattern """ from pattern.web import cache from pattern.web import plaintext from pattern.web import Twitter from pattern.web import Facebook ####################################### # Social media data mining ####################################### class Marmelade(object): """ SEO finder """ def __init__(self, lang): self.engine_twitter = Twitter(license=None, throttle=0.5, language=lang) self.engine_facebook = Facebook(license=None, throttle=1.0, language=lang) def twitter(self, word): """ Find Twitter data """ return [(u"twitter", plaintext(elem.description), plaintext(elem.author), plaintext(elem.date), plaintext(elem.url)) for elem in self.engine_twitter.search(word, cached=True, timeout=30)] def facebook(self, word): """ Find Facebook data """ return [(u"facebook", plaintext(elem.description), plaintext(elem.author), plaintext(elem.date), plaintext(elem.url)) for elem in self.engine_facebook.search(word, cached=True, timeout=30)] if __name__ == '__main__': cache.clear() # clear Pattern search cache M = Marmelade('fr') for item in M.twitter("python"): print item
Remarques
La commande cache.clear() permet de vider le cache des recherches précédentes effectuées.