def logout_bras(self): #request = urllib2.Request('http://p.nju.edu.cn/portal.do?action=logout') #urllib2.urlopen(request) #print 'logout p.nju' posturl = 'http://bras.nju.edu.cn/selfservice/auth.html' cj = cookielib.LWPCookieJar() cookie_support = urllib2.HTTPCookieProcessor(cj) opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler) urllib2.install_opener(opener) urllib2.urlopen(posturl) req_img = urllib2.Request('http://bras.nju.edu.cn/selfservice/img.html?0.0826044527348131') res_img = urllib2.urlopen(req_img) img = res_img.read() f = open('code2.jpg', 'wb') f.write(img) f.close() code = Captcha.Recognize('code2.jpg') headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1','Referer' : '******'} postData = {'login_username' : self.username,'action':'login','login_password' : self.password,'code':code} postData = urllib.urlencode(postData) request = urllib2.Request(posturl, postData, headers) response = urllib2.urlopen(request) url = 'http://bras.nju.edu.cn/selfservice/?action=online' request = urllib2.Request(url) response = urllib2.urlopen(request) text = response.read() content = text.decode('UTF-8') # 取退出必须的id logout_id = self.get_logoutid(content) url = 'http://bras.nju.edu.cn/selfservice/?action=disconnect&id='+str(logout_id) request = urllib2.Request(url) response = urllib2.urlopen(request) text = response.read() content = text.decode('UTF-8') if content.find('下线成功')>-1: print 'logout bras success'
def login_pnju(self): posturl = 'http://p.nju.edu.cn/portal.do' cj = cookielib.LWPCookieJar() cookie_support = urllib2.HTTPCookieProcessor(cj) opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler) urllib2.install_opener(opener) result = urllib2.urlopen(posturl) text = result.read() code = '0' # 读取验证码 try: req_img = urllib2.Request('http://p.nju.edu.cn/img.html') res_img = urllib2.urlopen(req_img) img = res_img.read() f = open('code.jpg', 'wb') f.write(img) f.close() # 验证码识别 code = Captcha.Recognize('code.jpg') print 'code='+code except: pass # submit login posturl = 'http://p.nju.edu.cn/portal.do?action=login&url=http%3A%2F%2Fp.nju.edu.cn&p_login=p_login&username='******'&password='******'&code='+code+'&x=48&y=13' request = urllib2.Request(posturl) #print 'login...code:' + code response = urllib2.urlopen(request) text = response.read() content = text.decode('utf8') # 判断是否登录成功 if content.find('验证码错误')>-1: print 'captcha error' else: print 'login p.nju success' request = urllib2.Request('http://p.nju.edu.cn/portal.do') response = urllib2.urlopen(request)