Python 模拟登陆

来源:转载


import urllibimport urllib.requestimport gzipimport httpimport http.cookiejar

#定义一个方法用于生成请求头信息,处理cookiedef getOpener(head):# 初始化一个CookieJar来处理Cookie <pre name="code"> cj = http.cookiejar.CookieJar()#实例化一个openerpro = urllib.request.HTTPCookieProcessor(cj)opener = urllib.request.build_opener(pro)header = []for key, value in head.items():elem = (key, value)header.append(elem)opener.addheaders = headerreturn openerdef ungzip(data):#定义一个方法来解压返回信息try: #尝试解压print('正在解压.....')data = gzip.decompress(data)print('解压完毕!')except:print('未经压缩, 无需解压')return data#执行操作,就是登陆# header 这个表示封装成消息头的参数,参数类型是字典#postDict 这个是用户名和密码的字典参数

def login(header,url,postDict):opener = getOpener(header)postData = urllib.parse.urlencode(postDict).encode()op = opener.open(url, postData)data = op.read()data = ungzip(data)print(data)if __name__ == '__main__':#封装消息头,伪装成浏览器header = {'Host': 'pcpre2.xjuke.com','Connection': 'keep-alive','Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3','Accept': 'application/json, text/plain, */*','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0','Accept-Encoding': 'gzip, deflate','Content-Type': 'application/json;charset=utf-8','Referer': 'http://pcpre2.xjuke.com/?c=q-5ce/','Content-Length': '58'}#用户名和密码postDict = {'username': XXX,'password': XX,'wechatCode':'q-5ce'}login(header,'XXXXX',postDict)


分享给朋友:
您可能感兴趣的文章:
随机阅读: