jueves, 11 de diciembre de 2008

Olvidaré en 10 minutos cómo acceder a una página con usuario y password desde Python

Para poder leer una página que requiera auteticación, aquí hay un enlace que deja muy claro cómo hacerlo: http://code.activestate.com/recipes/305288/



Básicamente, se trata de hacer uso de la librería urlib2:



import urllib2

theurl = 'http://www.lapagina.es'

username = r'dedom\US'

password = 'XXXX'



passman = urllib2.HTTPPasswordMgrWithDefaultRealm()

passman.add_password(None, theurl, username, password)

authhandler = urllib2.HTTPBasicAuthHandler(passman)



opener = urllib2.build_opener(authhandler)

urllib2.install_opener(opener)

fd=urllib2.urlopen(theurl)



Si lo que hace falata es usar Cookies:

http://mundogeek.net/archivos/2008/04/15/interactuar-con-webs-en-python/

import urllib2, cookielib

cookie_j = cookielib.CookieJar()
cookie_h = urllib2.HTTPCookieProcessor(cookie_j)

opener = urllib2.build_opener(cookie_h)
print "autenticando"
opener.open(theURL0)
opener.open(theURL1)
print "leyendo informacion de niveles"
fd=opener.open(theURL2)
texto=fd.read()

#nos queda un file descriptor sobre el que hacer read en fd (!!)

Otra web de esto:

http://www.voidspace.org.uk/python/articles/cookielib.shtml


Otra cosa interesante: un manual con ejemplos de la librería urllib2. Lo he utilizado, por ejemplo, para capturar los errores al tratar de comprobar el estado de alguna página:

http://www.voidspace.org.uk/python/articles/urllib2.shtml#urlerror

No hay comentarios: