Python 模拟登陆

2020-01-15 17:50:50 浏览数 (1)

import urllib import urllib.request import gzip import http import http.cookiejar

#定义一个方法用于生成请求头信息,处理cookie   def getOpener(head):  # 初始化一个CookieJar来处理Cookie <pre name="code" class="python">   cj = http.cookiejar.CookieJar()  #实例化一个opener  pro = 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 = header  return opener def 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)

0 人点赞