記錄使用Python登入浙江大學統一身份認證

2022-08-23 23:18:14 字數 1268 閱讀 9086

現在每天要進行健康情況上報,但是因為經常睡過頭忘記打卡,於是想著寫乙個程式來自動打卡。

訪問健康情況上報頁面(後會先跳轉到登入介面

輸入賬號密碼登陸以後會傳送乙個post請求

表單裡一共有五項內容

可以看到,username就是學號,password不是密碼的明文,可能是經過了雜湊或者加密,authcode一項為空不用管,_eventid應該是提交的意思,而最長的execution看不出有什麼含義。

通過檢視網頁源**,可以看到登入表單中有一項

就是execution的內容,可以看出,每次請求頁面的時候會返回execution,在登入時帶著這一項提交,作用可能是防止csrf攻擊(猜的)。

現在整個登入的流程已經梳理清楚了,開始使用**實現

先訪問頁面並提取execution

sess = requests.session()

r = sess.get('')

execution = re.search('name="execution" value="(.*?)"', r.text).group(1)

獲取密碼加密需要的引數

r = sess.get('')

modulus = r.json()['modulus']

exponent = r.json()['exponent']

加密密碼

ctx = execjs.compile(jscode)

encrypted_password = ctx.call('encrypt', username, password)

傳送登入請求

data = 

r = sess.post(post_url, data=data)

之後就可以進行自動打卡的操作了。

Python 記錄 模擬登入 的 cookie

在 進行python進行爬蟲的時候,都繞不開登入,很多需求只能使用者登入之後才能進行後續的介面呼叫。那麼伺服器如何知道 你此次的請求 是否登入過 還是沒有,一般會通過cookie。因此記錄 cookie的作用就非常重要。usr bin env python import os import requ...

python 使用記錄

時間戳轉換為日期格式 deftimestamp datetime value,format value為傳入的值為時間戳 整形 如 1332888820 value time.localtime value 經過localtime轉換後變成 time.struct time tm year 2012...

Python 使用記錄(累計記錄)

2 pandas 設定 3 pandas 操作 4 笛卡爾積 1 列表轉字串list1 department of biology str1 join list1 print str1 department of biology2 從列表中刪除元素 要刪除的元素的型別必須與列表中的元素的型別相同 l...