我正在尝试创建一个Python程序,使用我的ID和密码登录我的大学网站。这是登录的正式页面:https://webapp.pucrs.br/consulta/。
你可能会注意到,两个字段被命名为pr1和pr2。该页面使用POST方法发送数据。同时,在加载页面时会下载一个cookie,它是一个包含随机值的JSESSIONID,据我了解,你必须在POST方法的头部返回它以验证登录信息。
我编写了以下代码,但是GET方法返回的页面显示“未初始化会话”,很可能是因为没有正确地发送cookie。
你可能会注意到,两个字段被命名为pr1和pr2。该页面使用POST方法发送数据。同时,在加载页面时会下载一个cookie,它是一个包含随机值的JSESSIONID,据我了解,你必须在POST方法的头部返回它以验证登录信息。
我编写了以下代码,但是GET方法返回的页面显示“未初始化会话”,很可能是因为没有正确地发送cookie。
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()
我应该把这个cookie放在哪里,才能进行登录认证?