Lo primero que tenemos que tener a mano es nuestro es el script de creamos el otro día, podéis descargarlo desde aqui. También necesitamos los siguientes parámetros para conectar al servidor de MongoDB
- Servidor donde tenemos alojado MongoDB, en nuestro ejemplo será localhost
- Puerto por el que estableceremos conexión.
- Nombre de la Base de datos que crearemos para este ejemplo.
- Usuario con el que estableceremos conexión a la base de datos.
- Contraseña con la que nos autenticaremos.
- Nombre de la Colección donde almacenaremos los datos.
Ahora en el script vamos a realizar lo siguiente:
Vamos a crear un procedimiento llamado InsertUser y le vamos a pasar como parámetro una variable que contendrá el documento que vamos a insertar, en el vamos a establecer la conexión con MongoDB y vamos a insertar el documento en la base de datos que hemos creado llamada twitter y la colección TwitterInformation.
def InsertUser(document): StringConnection = 'mongodb://USUARIO:CONTRASEÑA@localhost:27017/twitter'; # Establecemos la conexion con el servidor client = MongoClient(StringConnection); # Base de datos con la que vamos a trabajar db = client.twitter; # Nuestra colección es llamada TwitterInformation collection = db.TwitterInformation; # Insertamos el documento con los datos recibidos de GetFriendsInformation collection.insert(document); print 'Registro insertado correctamente'En el procedimiento GetFriendsInformation, vamos a realizar una serie de cambios, anteriormente mostrabamos por pantalla los datos obtenido de cada usuario de twitter que sigue a nuestra cuenta. Ahora vamos a formar un documento con dicha información, lo siguiente será llamar al procedimiento InsertUser pasándole dicho documento como argumento, quedaría de la siguiente forma:
# Procedimiento para mostrar los datos de cada amigo seguido en Twitter def GetFriendsInformation(user, api): # Obtenemos el listado de de amigos del usuario pasado TwitterFriends = api.GetFriends(screen_name=user); # Por cada amigo vamos a mostrar la informacion que desemos for Friends in TwitterFriends: # Generamos los documentos con los datos obtenidos. document = { 'screen_name': Friends.screen_name, 'followers_count':Friends.followers_count, 'friends_count': Friends.friends_count, 'statuses_count': Friends.statuses_count } # Llamada al procedimiento para insertar los documentos InsertUser(document);El script al completo os lo podéis descargar desde aquí y quedaría de la siguiente forma:
from pymongo import MongoClient import twitter # Datos de autenticacion OAUTH_TOKEN='Rellenar con vuestros datos'; OAUTH_SECRET='Rellenar con vuestros datos'; CONSUMER_KEY='Rellenar con vuestros datos'; CONSUMER_SECRET='Rellenar con vuestros datos'; # Conexion a la API api = twitter.Api(consumer_key=CONSUMER_KEY, consumer_secret=CONSUMER_SECRET, access_token_key=OAUTH_TOKEN, access_token_secret=OAUTH_SECRET); # Procedimiento para mostrar los datos de cada amigo seguido en Twitter. def GetFriendsInformation(user, api): # Obtenemos el listado de de amigos del usuario pasado TwitterFriends = api.GetFriends(screen_name=user); # Por cada amigo vamos a mostrar la informacion que desemos for Friends in TwitterFriends: # Generamos los documentos con los datos obtenidos. document = { 'screen_name': Friends.screen_name, 'followers_count':Friends.followers_count, 'friends_count': Friends.friends_count, 'statuses_count': Friends.statuses_count } # Llamada al procedimiento para insertar los documentos InsertUser(document); def InsertUser(document): StringConnection = 'mongodb://USUARIO:CONTRASEÑA@localhost:27017/twitter'; # Establecemos la conexion con el servidor client = MongoClient(StringConnection); # Base de datos con la que vamos a trabajar db = client.twitter; # Nuestra colección es llamada TwitterInformation collection = db.TwitterInformation; # Insertamos el documento con los datos recibidos de GetFriendsInformation collection.insert(document); print 'Registro insertado correctamente' # Llamada al procedimiento para obetener los datos del usuario HispaBigData GetFriendsInformation('hispabigdata', api);Como podéis observar con pocas lineas de código, estamos obteniendo información de las cuentas de twitter y almacenándola en una base de datos NoSQL. Esto es un ejemplo bastante sencillo, ahora está en vuestra imaginación hasta donde podéis llegar para analizar todos los datos que nos ofrece la API v1.1 twitter.
No hay comentarios:
Publicar un comentario