A quién seguir en twitter?

Fecha: October 1st, 2009 | Categoría: Python | 2 Comments »

Pequeño scriptcito para python que nos aconseja a quienes seguir, basándose en la cantidad de caminos de distancia dos hacia personas que no seguís.

Download source code (zipped .py)

Este es el código:

  1. # -*- coding: utf-8 -*-
  2. import getpass
  3. import sys
  4. import twitter
  5.  
  6. if __name__ == ‘__main__’:
  7.     user = raw_input("Username: ")
  8.     password = getpass.getpass("Password: ")
  9.     print ‘Connecting to twitter…’
  10.     try:
  11.         api = twitter.Api(user, password)
  12.     except:
  13.         print ‘Error connecting to twitter api. Check your connection, ‘ \
  14.                 ‘your username and password and try again.’
  15.         sys.exit(1)
  16.     print ‘Fetching friends…’
  17.     try:
  18.         amigos = api.GetFriends()
  19.     except:
  20.         print ‘Error fetching friends’
  21.         sys.exit(1)
  22.     primeros = [ primero._screen_name for primero in amigos ]
  23.     print ‘Friends fetched. Obtaining second-level contacts…’
  24.     segundos = []
  25.     for primero in primeros:
  26.         try:
  27.             second_level = api.GetFriends(primero)
  28.             for segundo in second_level:
  29.                 segundos.append(segundo._screen_name)
  30.         except:
  31.             print ‘Error fetching friends for %s’ % primero._screen_name
  32.     if len(segundos) == 0:
  33.         print ‘No recommendations can be done, no second-level users found’
  34.         exit(1)
  35.     print ‘Done traversing. These are our recommendations:’
  36.     lista = dict()
  37.     for segundo in segundos:
  38.         if segundo not in primeros and segundo != user:
  39.             if lista.has_key(segundo):
  40.                 lista[segundo] += 1
  41.             else:
  42.                 lista.update([(segundo, 1)])
  43.     ordenados = [ (lista[usuario], usuario) for usuario in lista ]
  44.     ordenados.sort()
  45.     ordenados.reverse()
  46.     for sugerencia in ordenados[0:9]:
  47.         print "\tYou should follow ‘%s’, for %d of your friends are "\
  48.                 "currently following him/her."%(sugerencia[1], sugerencia[0])

2 Comments on “A quién seguir en twitter?”

  1. 1 Juanjo said at 12:20 pm on December 26th, 2009:

    Iba a probarlo, pero…

    1) La dirección a pastebin no está enlazada.
    2) Ok, me tomo el trabajo de copypegarla: no existe, se ve que no tildaste “forever”
    3) Ok, copio y pego el cóndigo desde el blog a un editor de texto: NO! me lo copia con los números de línea.

    Esteban! así no vas a tener usuarios!

  2. 2 eordano said at 2:54 pm on December 26th, 2009:

    Gracias por avisar; problemas arreglados.


Leave a Reply