HTTP POST und GET mit Cookies zur Authentifizierung in Python

Ich versuche, ein Python-Programm zu erstellen, das sich mit meiner ID und meinem Passwort bei der Website meiner Universität anmeldet. Dies ist die offizielle Seite zum Einloggen:https://webapp.pucrs.br/consulta/

Wie Sie vielleicht bemerken, heißen die beiden Felder pr1 und pr2. Die Seite verwendet POST, um die Daten zu senden. AUCH, es gibt ein Cookie, das heruntergeladen wird, wenn die Seite geladen wird. Es ist eine JSESSIONID mit einem zufälligen Wert, den Sie, wie ich verstanden habe, im Header der POST-Methode zurückgeben müssen, um die Anmeldung zu authentifizieren.

Ich habe den folgenden Code geschrieben, aber auf der Rückgabeseite der GET-Methode steht "Die Sitzung wurde nicht initialisiert", wahrscheinlich, weil der Cookie nicht ordnungsgemäß zurückgesendet wurde.

<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>

Wo lege ich dieses Cookie ab, damit die Anmeldung authentifiziert wird?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage