में प्रमाणीकरण के लिए कुकीज़ के साथ प्राप्त करें मैं एक पाइथन प्रोग्राम बनाने की कोशिश कर रहा हूं जो मेरी आईडी और पासवर्ड का उपयोग कर मेरे विश्वविद्यालय की साइट पर लॉग इन करता है। लॉग इन करने के लिए यह औपचारिक पृष्ठ है: https://webapp.pucrs.br/consulta/HTTP पोस्ट और पाइथन
जैसा कि आप देख सकते हैं, दोनों फ़ील्ड pr1 और pr2 नामित हैं। पृष्ठ डेटा भेजने के लिए POST का उपयोग करता है। साथ ही, एक कुकी है जो पेज लोड होने पर डाउनलोड की जाती है, यह एक JSESSIONID है जिसमें यादृच्छिक मान होता है, जैसा कि मैंने समझा, आपको लॉगिन प्रमाणित करने के लिए POST विधि के शीर्षलेख पर वापस जाना होगा।
मैंने निम्नलिखित कोड लिखा है, लेकिन जीईटी विधि पर रिटर्न पेज कहता है, "सत्र प्रारंभ नहीं हुआ था", शायद कारण कुकी को ठीक से वापस नहीं भेजा गया था।
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()
मैं इस कुकी को कहां रखूं ताकि लॉगिन प्रमाणित हो?
आप कुकीज को स्वचालित रूप से संभालने के लिए सत्र का उपयोग कर सकते हैं। [डॉक्स] से (http://docs.python-requests.org/en/latest/user/advanced/#session-objects): * सत्र ऑब्जेक्ट आपको अनुरोधों के कुछ पैरामीटर जारी रखने की अनुमति देता है। यह सत्र उदाहरण से किए गए सभी अनुरोधों में कुकीज़ भी जारी रखता है। * –
@PiotrDobrogost यह अच्छा है, धन्यवाद! और कोड भी बेहतर दिखता है। – jorgeca
अब, आप अपना उत्तर भी बेहतर बना सकते हैं ... –