1. 程式人生 > >Python 模擬登陸

Python 模擬登陸

python 模擬登陸

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)


Python 模擬登陸