學校的校園網每次重開電腦時都要重新打開瀏覽器進行網頁登錄,繁瑣的操作比較麻煩,於是便寫了個python的腳本進行自動登錄,下面說下具體的操作過程:
1. 方法說明
博主采用的python的 requests庫,發送post請求給登錄網頁,主要包括請求頭和登錄數據,由於校園網設計的比較簡單,沒有驗證碼什么的,操作起來就比較簡單。我來詳細的說下怎么來獲得登錄的請求頭和登錄數據。首先貼一下學校的校園網登錄界面:
瀏覽器采用的是firefox,右鍵查看元素,查看網絡,然后手動登錄一次會看到相應的登錄過程如下:
這里會看到我登錄過程給網頁發送的post請求,然后查看相應的請求頭(不是響應頭)和登錄參數:
有了這兩個部分,下面就可以寫程序來登陸啦,具體的代碼如下:
1 ''' 2 南京大學校園網自動登錄腳本 3 @author: zutterhao 4 @parameter: post_addr: 南大校園網登陸地址 5 post_header:瀏覽器登陸校園網的post請求 6 post_data: 登陸的用戶名和密碼 7 @date:2018年5月8日 8 ''' 9 10 import requests 11 #登陸地址 12 post_addr = "http://p.nju.edu.cn/portal_io/login" 13 #構造頭部信息 14 post_header = { 15 'Accept': 'application/json, text/javascript, */*; q=0.01', 16 'Accept-Encoding':'gzip, deflate', 17 'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2', 18 'Connection':'keep-alive', 19 'Content-Length':'39', 20 'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8', 21 'Host':'p.nju.edu.cn', 22 'Referer':'http://p.nju.edu.cn/portal/index.html?v=201606170633', 23 'User-Agent':'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:59.0) Gecko/20100101 Firefox/59.0', 24 'X-Requested-With':'XMLHttpRequest' 25 } 26 #構造登錄數據 27 post_data = { 28 'password': '********', 29 'username': '********' 30 } 31 #發送post請求登錄網頁 32 z = requests.post(post_addr,data=post_data,headers = post_header) 33 print("登錄完成!")
本來准備將py文件轉換為exe文件,但是覺得用.bat批處理更加方便,在py文件目錄下建立一個.bat文件:
1 cd .\autologin\ 2 python .\login.py
然后將.bat文件創建一個桌面快捷方式,改一下圖標就可以啦:
這樣,以后只要雙擊就可以進行自動登錄了:)
不過本方法還是有很多不足之處:第一只能支持本電腦的指定瀏覽器,如果換了一個電腦和瀏覽器就不能工作;另一個就是沒有異常處理,不能返回登錄失敗的情況下的信息,后續改進的版本會優化下這些問題,目前使用來看還挺不錯哈哈。