HTTP POST y GET con cookies para la autenticación en Python
Estoy tratando de crear un programa de Python que inicie sesión en el sitio de mi universidad usando mi ID y contraseña. Esta es la página formal para iniciar sesión:https://webapp.pucrs.br/consulta/
Como puede observar, los dos campos se denominan pr1 y pr2. La página utiliza POST para enviar los datos. TAMBIÉN, hay una cookie que se descarga cuando se carga la página, es un JSESSIONID que contiene un valor aleatorio que, según tengo entendido, debe regresar al encabezado del método POST para autenticar el inicio de sesión.
Escribí el siguiente código, pero la página de retorno del método GET dice "La sesión no se inicializó", probablemente porque la cookie no se envió correctamente.
<code>from urllib2 import Request, build_opener, HTTPCookieProcessor, HTTPHandler import httplib, urllib, cookielib, Cookie, os conn = httplib.HTTPConnection('webapp.pucrs.br') #COOKIE FINDER cj = cookielib.CookieJar() opener = build_opener(HTTPCookieProcessor(cj),HTTPHandler()) req = Request('http://webapp.pucrs.br/consulta/principal.jsp') f = opener.open(req) html = f.read() for cookie in cj: c = cookie #FIM COOKIE FINDER params = urllib.urlencode ({'pr1':111049631, 'pr2':<pass>}) headers = {"Content-type":"text/html", "Set-Cookie" : "JSESSIONID=70E78D6970373C07A81302C7CF800349"} # I couldn't set the value automaticaly here, the cookie object can't be converted to string, so I change this value on every session to the new cookie's value. Any solutions? conn.request ("POST", "/consulta/servlet/consulta.aluno.ValidaAluno",params, headers) # Validation page resp = conn.getresponse() temp = conn.request("GET","/consulta/servlet/consulta.aluno.Publicacoes") # desired content page resp = conn.getresponse() print resp.read() </code>
¿Dónde coloco esta cookie para autenticar el inicio de sesión?