偶然看到一個同事設置鬧鐘,提醒本身下班打開。就突發奇想,既然身爲後臺開發是否是能夠用程序來實現自動打卡的功能呢? 因而開起來fiddler進行抓包,發現設置代理,雲之家沒法進行簽到功能。既然電腦沒法進行代理,那我直接在手機上開啓個代理應用進行抓包不就好了麼?vue
最後抓到的結果簽到接口java
分析下接口python
www.yunzhijia.com
/attendance-signapi/signservice/sign/signIn h2
POST
lng=緯度&lat=精度&bssid=&configId=配置ID&networkId=網絡ID&userId=用戶ID&ssid=
試着請求了一下 ios
試了一下將獲取的接口直接請求,雲之家並無對token的時間進行限制,因此拿到請求參數後能夠直接擼代碼了。 考慮了一下java代碼的繁重,最後決定用python來完成自動簽到的功能。 原本還用vue+axios寫了一個網頁版,可是後面發現axios老是會發送一個option請求致使返回錯誤,最後就沒有去實現了。json
python主要用到了三個庫:axios
apscheduler做爲定時器實現自動簽到的功能api
import requests
import json
from apscheduler.schedulers.blocking import BlockingScheduler
# 簽到
def sign_in():
url = " http://www.yunzhijia.com/attendance-signapi/signservice/sign/signIn?lng=&bssid=&configId=&networkId=&userId=&ssid=&lat="
headers = {
"user-agent": "",
"opentoken": "",
"authorization": "",
"accept-language":"",
}
response = requests.post(url, headers=headers)
print(response.text)
response_json = json.loads(response.text)
print(response_json['success'])
def job():
sched = BlockingScheduler()
sched.add_job(sign_in, 'cron', hour=18, minute=0)
sched.add_job(sign_in, 'cron', hour=9, minute=0)
sched.start()
if __name__ == '__main__':
job()
複製代碼
此代碼僅供學習用,我本身寫完這個代碼後也沒有用過,平時也是準點上下班,但願你們不要隨意使用,若有侵權問題請聯繫,隨時刪除。bash