Los recortadores reducen la cantidad de carácteres que puede llegar a tener un url que queramos compartir.
Existen varios sitios que facilitan el recortar URL:
- Bit.ly
- Goo.gl
- TinyURL
Es necesario registrar la aplicación y luego buscar el apikey.
El script que se va a hacer tiene de requerimiento los siguientes módulos de python:
- urllib
- urllib2
- re
- simplejson
A continuación se muestra el código:
Al ejecutar el script se tiene lo siguiente:#!/usr/bin/python# Script que convierte un url a un url recortado por medio de bit.ly# requiere urllib, urllib2, re, simplejson#Se intenta importar los modulos que se necesito si no devuelve mensaje de error#donde se menciona que se requiere los los modulos.try:from re import matchfrom urllib2 import urlopen, Request, HTTPErrorfrom urllib import urlencodefrom simplejson import loadsexcept ImportError, e:raise Exception('Required module missing: %s' % e.args[0])#Definicion de usuario y clave bit.lyuser = "o_5j8ri77vv6aa"apikey = "R_172fe1dcf183470c85ce345aaa784cf9395"#Funcion que recorta el url, se le pasa un url y devuelve el mismo recortadodef shorten(url):#Se maneja la excepcion de error httptry:#Se le pasa los parametros url, user, apikey y formato de serializacion en#este caso jsonparams = urlencode({'longUrl': url, 'login': user, 'apiKey': apikey, 'format': 'json'})#Se hace la solicitud al api de bit.ly pasandole los parametrosreq = Request("http://api.bit.ly/v3/shorten?%s" % params)#Se abre la respuesta.response = urlopen(req)#Se lee y se cargaj = loads(response.read())#Si el codigo de estatus de la peticion http es 200#se retona el url recortadaif j['status_code'] == 200:return j['data']['url']#Si no es 200 se genera una excepcion pasando el mensaje de estatusraise Exception('%s'%j['status_txt'])#Si no se logra la conexion http se devuelve un mensaje de error.except HTTPError, e:raise('HTTP error%s'%e.read())if __name__ == '__main__':#Se importa argv del modulo sysfrom sys import argv#Si no inicia el argumento con http se devuelve un mensaje de error#solicitando que se coloque el http al url.if not match('http://',argv[1]):raise Exception('Debe iniciar con "http://"')#Se muestra en la consola el url recortadoprint shorten(argv[1])
ernesto@grievous:~/bin/python$ ./acortarurl.py http://blog.crespo.org.ve http://bit.ly/LXP0QB
Con el script ya se puede ir recortando url de por ejemplo el artículo anterior donde se obtiene la lista de artículos de un blog por medio de rss.
No hay comentarios:
Publicar un comentario