lunes, 21 de octubre de 2013

Trabajando con Python, la API v1.1 de Twitter y MongoDB (Parte 1)

Hoy en día, el auge de las redes sociales nos ofrece la posibilidad de recopilar muchísima información de la RED. Estos portales nos ofrecen su API, para que podamos desarrollar aplicaciones usando sus datos. Las grandes empresas usan este tipo de información para analizarla y conocer nuestras necesidades.

Hoy vamos a ver como podemos como podemos obtener información de la API v1.1 de Twitter. Para ello vamos a usar un modulo de python que nos va a facilitar el trabajo, posteriormente veremos como podemos guardar toda esta información en una base de datos MongoDB.

El objetivo de esta practica será sacar información de todos los amigos que seguimos en twitter, como por ejemplo la localización, el numero de seguidores y amigos que tienen y el numero de tweets enviados.

Lo primero que vamos a hacer sera registrarnos en Twitter si no tenemos una cuenta, en caso de que la tengamos, vamos a logarnos en el portal de desarrollo y vamos a crear una nueva aplicación, para tener acceso a los datos para acceder a la API, mediante autenticación OAuth.

Una vez tengamos creada la aplicación en el portal, debemos tener a mano los valores de las siguientes variables para autenticarse:
consumer_key
consumer_secret
access_token_key
access_token_secret
Ahora vamos a instalar los modulos pymongo y python-twitter, para pode empezar a trabajar con python.
pip install pymongo
pip install python-twitter
Ahora ya disponemos nuestro sistema preparado para poder crear nuestro script, podeis descargarlo desde aqui.
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';

# Conexión 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:
      # Nombre mostrados
      print 'Amigo ' + Friends.screen_name;
      # Localizacion
      print '\t Localizacion: ' + Friends.location;
      # Numero de seguidores
      print '\t Numero de seguidores: ' + str(Friends.followers_count);
      # Numero de amigos
      print '\t Numero de amigos: ' + str(Friends.friends_count);
      # Numero de tweets enviados
      print '\t Numero de tweets enviados: ' + str(Friends.statuses_count);

# Llamada al procedimiento para obtener los datos del usuario HispaBigData
# Sustituir el usuario por el vuestro o cualquiera que querais analizar.
GetFriendsInformation('hispabigdata', api);
Entre lineas en el script explicamos cada uno de los pasos, si lo ejecutáis, obtendréis el listado de usuario que seguimos y la información que hemos comentado anteriormente. Hay que tener cuidado de ejecutar el script muchas veces, ya que el acceso a a la API tiene un limite de veces por minuto.

Si queremos ver todos los datos que podemos obtener de un usuario o de otro tipo, podemos leer la documentación que nos proporciona el módulo de python-twitter.
pydoc twitter.User
pydoc twitter.Status
pydoc twitter.DirectMessage
La semana que viene veremos como usar esta información para almacenarla en nuestra base de datos MongoDB, para ello crearemos un nuevo procedimiento y realizaremos algunos cambios en el script. Podéis acceder desde aquí al siguiente artículo.

No hay comentarios:

Publicar un comentario