Pythonアナログログイン(認証コード付き)

1596 ワード

import urllib
import urllib2
import cookielib
    
def getImg(picurl):
    '''
    request for random_code picture and cookie 
    '''
    pic = opener.open(picurl).read()
    with open('./verifyImg.jpg','wb') as emptyPic:
        emptyPic.write(pic)

def verifyImg(picpath):
    '''
    TODO
    '''
    pass

def login(coo):
    loginUrl = 'http://jwxt.wust.edu.cn/whkjdx/Logon.do?method=logon'
   
    data = {'USERNAME':'*****', 'PASSWORD':'*****', 'RANDOMCODE':coo}
    #encode the postData
    postData = urllib.urlencode(data)
    
    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    header = {'User-Agent':user_agent,'Referer':'http://jwxt.wust.edu.cn/whkjdx/framework/main.jsp'}
    #generate a Request with url,postData headers and cookie
    request = urllib2.Request(loginUrl, postData, headers = header)
    #post data
    content = opener.open(request)
    #get html file
    mainUrl = 'http://jwxt.wust.edu.cn/whkjdx/framework/main.jsp'
    mainContent = opener.open(mainUrl).read()
    print mainContent 

if __name__ == '__main__':
    
    cookie = cookielib.CookieJar()
    handler = urllib2.HTTPCookieProcessor(cookie)
    opener = urllib2.build_opener(handler)

    picurl = 'http://jwxt.wust.edu.cn/whkjdx/verifycode.servlet'
    getImg(picurl)
    #verifyImg(picpath)
    
    randomCode = raw_input('Plz input teh randomcode:')
    
    login(randomCode)