Por un capricho del azar, me encontré con un BSoD en el Aeropuerto Internacional Ben Gurión, justo cuando vestía mi viejísima remera “got linux?“.
Foto © Galio
Por un capricho del azar, me encontré con un BSoD en el Aeropuerto Internacional Ben Gurión, justo cuando vestía mi viejísima remera “got linux?“.
Foto © Galio
Por mi trabajo, siempre estoy pendiente de lo que sucede en Crunchbase (de hecho, estoy suscripto a su feed de páginas recientes). Con tantas empresas y personas yendo y viniendo por Twitter, se transformó en una fuente de consulta permanente.
¿Puedo consultar Crunchbase con Python? La respuesta es obvia
Crunchbase tiene una API muy interesante que devuelve resultados en formato JSON. Pueden encontrar documentación sobre su uso en crunchbase-api.
Para este programa estoy usando la librería simplejson (sudo apt-get install python-simplejson)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import sys, urllib, simplejson api = 'http://api.crunchbase.com/v/1/search.js?%s' def main(): if len(sys.argv) >= 2: q = ' '.join(sys.argv[1:]) source = urllib.urlopen(api % urllib.urlencode({'query': q})) results = simplejson.loads(source.read()) if results['results']: for r in results['results']: name = r.get('name') if not name: name = ' '.join([w.capitalize() \ for w in r['permalink'].split('-')]) print '%s (%s): %s' % ( name.strip(), r['namespace'].capitalize(), r['crunchbase_url'], ) else: print 'No results for "%s"' % q else: print 'Usage: python %s <keyword(s)>' % sys.argv[0] if __name__ == '__main__': main() |
Aquí tienen algunos resultados:
mahadeva@blue:~$ python crunchbase.py Usage: python crunchbase.py mahadeva@blue:~$ python crunchbase.py popego Popego (Company): http://www.crunchbase.com/company/popego Santiago Siri (Person): http://www.crunchbase.com/person/santiago-siri
El programa en sí no es muy cómodo de usar (para eso existen los add-ons de de Firefox
), pero es un buen punto de partida para utilizar, por ejemplo, como una aplicación de Django, o un bot que interactúe con Twitter.
Acá les muestro un simple notificador de correo con Python.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import sys, libgmail def main(): if len(sys.argv) >= 3: g = libgmail.GmailAccount(sys.argv[1], sys.argv[2]) try: g.login() except libgmail.GmailLoginFailure: print 'Login incorrecto' else: unread = g.getUnreadMsgCount() if unread: import pynotify, gtk pynotify.init('Gmail notify') pynotify.Notification('Gmail', '%d mensajes sin leer' % unread, gtk.STOCK_DIALOG_INFO).show() if __name__ == '__main__': main() |
En la primera línea estoy importando el módulo libgmail porque uso Gmail. Si usan Ubuntu, pueden instalar esta librería con sudo apt-get install python-libgmail.
Alternativamente pueden obtener un XML en formato Atom a través de https://mail.google.com/mail/feed/atom (van a necesitar algo como urllib2.HTTPPasswordMgrWithDefaultRealm).
Como es un script que se ejecuta desde la línea de comandos, sys.argv[1] será mi nombre de usuario y sys.argv[2] mi contraseña.
Si en mi cuenta hay correo no leído (línea 12), importo pynotify y gtk (porque uso Gnome) para mostrar un mensaje en mi pantalla:

Dos cosas a tener en cuenta:
There are ‘extremists’ in the free software world, but that’s one major reason why I don’t call what I do ‘free software’ any more. I don’t want to be associated with the people for whom it’s about exclusion and hatred.