Hoy, estuve leyendo acerca de las preciadas cookies, antes de continuar, por si alguien no sabe que son las cookies, consultemos a la ya famosa Wikipedia:
Citar
Los cookies enInformática sirven para:
Para la info completa aquí !- Llevar el control de usuarios: cuando un usuario introduce su nombre de usuario y contraseña, se almacena una cookie para que no tenga que estar introduciéndolas para cada página del servidor. Sin embargo, una cookie no identifica a una persona, sino a una combinación de computador-navegador-usuario.
- Conseguir información sobre los hábitos de navegación del usuario, e intentos de spyware, por parte de agencias de publicidad y otros. Esto puede causar problemas de privacidad y es una de las razones por la que las cookies tienen sus detractores.
Bien, con este tema rápidamente me vinieron a la mente varias ideas para programar con respecto al caso. Me puse manos a la obra y pues por ahora conseguí un humilde programa de 68 líneas (sin reducir nada).
El código lo que hace es enseñarnos 3 opciones:
- Ver cookies.
- Enviar cookies.
- Salir.
Mientras que la segunda opción nos permitirá enviar una o más cookies a algún sitio web(NO ME HAGO RESPONSABLE DEL MAL USO QUE LE PUEDAN DAR), dándonos la opción de guardar la salida del HTML en un archivo local o simplemente mostrarlo en consola.
Si piensan en: Y para que guardarlo ? , podría ser para ver si algún logueo se realiza de forma correcta, si algunos datos varían con cada cookie, etc. A su imaginación lo dejo !
La tercera opción no tiene mucha ciencia, no creo que haya que explicarla jajaja. Bien, sin más preámbulos, el código:
Código
Hice el código lo más ordenado posible, manejando controles de error para todo, evitando un código desastroso (:
# -*- coding: utf-8 -*- #Autor: JaAViEr|0x5d #Web: http://www.rootcodes.com #Twitter: @0x5d import urllib2, re, sys while True: print""" ¡ Obtén o envía cookies desde Python ! 1.- Ver cookies. 2.- Enviar cookies. 3.- Salir. """ try: opc = input("Opción ::> ") if opc in range(1,4): if opc == 3: break elif opc==1: try: url = raw_input("URL :: > http://") headers = urllib2.urlopen("http://%s"%url).info() cookie = re.findall("Set-Cookie:(.*)",str(headers))[0] if cookie: print "Cookie obtenida:\n", cookie save_q = raw_input("Guardar la cookie en un archivo?(TXT) (s/n) ::>").lower() if save_q=="s": try: archivo = open("%s.txt"%raw_input("Archivo : "),"w") archivo.write(str(cookie)) archivo.close() print "Archivo guardado con éxito!" except: print "No se pudo guardar el archivo..." else: print "No se obtuvo cookies..." except: print "No se pudo conectar" elif opc==2: print "Recuerda separar cada cookie con un punto y coma (;) !" try: url = raw_input("URL :: > http://") cookie_tosend = raw_input("Cookies: ") save_cookies = urllib2.build_opener() save_cookies.addheaders.append(('Cookie', cookie_tosend)) abrir_web = save_cookies.open("http://%s"%url) try: q_show = raw_input("Desea volcar el html en un archivo?(HTML) (s/n) ::> ") if q_show=="s": try: save_output = open("%s.html"%raw_input("Archivo de salida(sin .html):"),"w") save_output.write(abrir_web.read()) save_output.close() print "Archivo guardado con éxito !" except: print "No se pudo guardar el archivo..." else: print abrir_web.read() except: print "Ocurrió un problema inesperado..." except: print "Error inesperado..." else: print "No existe dicha opcion" except: print "Por favor ingresa un número"
Pueden hacer la prueba del programa con esta url : Prueba Cookies
Envíen desde el programa, la cookie "name=Javier" y vean el resultado
Y como siempre... Espero sea de su agrado el código !
Fuente: http://rootcodes.com/pythonenviando-y-recibiendo-cookies-jaavier0x5d/
Saludos, Javier.