背景:因為某些原因,每天上網必須登入某個網頁,覺得很麻煩 是以就寫了這樣一個自動登入網頁的東西
使用軟體Fiddler.exe
注:無法識别https時,可安裝Fiddler https證書,具體怎樣安裝 百度一下你就知道
- 在網頁填寫好賬号密碼,準備登陸
- 打開Fiddler軟體, 設定好監控的浏覽器
更新: 2020年5月,突然發現抓不到浏覽器請求, 360急速的抓不到了,可以換成IE或edge不進行指定程序,即可抓到
- 在準備好的網頁上點選登陸
- 在Fiddler中檢視截獲的資訊
- 如圖所示,檢視此類型請求,點選軟體右側web圖表選項,進行檢視
- 找到帶有賬号密碼的資料連接配接 ,按照下面的代碼,将之對照填寫
- 将下面代碼中的URL替換為目前資料的URL
Python代碼:
import urllib.request
import urllib
import gzip
import http.cookiejar
import sys
import os
# 定義一個方法用于生成請求頭資訊,處理cookie
def getOpener(head):
# deal with the Cookies
cj = http.cookiejar.CookieJar()
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 = {
'Connection': 'keep-alive',
'Host': '20.20.20.2',
# 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept': '*/*',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest'
# 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
url = 'http://20.20.20.2/ac_portal/login.php'#右鍵點選選中連接配接,将複制的URL粘貼于此
opener = getOpener(header)
id = 'admin' # 你的使用者名
password = '*******' # 你的密碼,需要填寫!!
postDict = {
'opr': 'pwdLogin',
'userName': id,
'pwd': password,
'rememberPwd': '0',
}
postData = urllib.parse.urlencode(postDict).encode()
try:
op = opener.open(url, postData)
except:
print("登入失敗")
os.system('pause') # 按任意鍵繼續
sys.exit(0)
data = op.read()
data = ungzip(data)
print(data)
也可以用pyinstaller打包成exe檔案 放其他電腦上都可以用
學習來源:https://blog.csdn.net/u283056051/article/details/49946981/