今日校園自動簽到


繼上次的模擬校園門戶登錄之后,發現主要在header中存在ua判斷字段"sec-ch-ua-mobile":"?1",在沒設定此字段時獲取到登錄的cookie是沒辦法進行打卡操作的。因此在請求基礎headers中帶上參數"sec-ch-ua-mobile":"?1",便可以實現打卡操作了。

代碼如下:

session.headers = {
            "User-Agent":'''Mozilla/5.0 (Linux; Android 11; M2012K11AC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/90.0.4430.210 Mobile Safari/537.36  cpdaily/9.0.0 wisedu/9.0.0''',
            "sec-ch-ua-mobile":"?1"
        }

此時再采用上篇文章提到的模擬ASE加密方式登錄,便可以進行打卡了,登錄模塊的業務不再贅述,可以參考上篇博客,下面講一下如何提交打卡請求。

首先,完成登錄操作后,需要獲取打卡請求的接口以及接口所需參數,這里用到黃鳥來針對app進行抓包,通過分析網絡請求來獲取請求接口及相關參數,iso可以使用網球或者Thor。
image
開啟抓包后,進入打卡應用頁面抓取網絡請求,對報文進行逐步分析,通過篩查可以確定出打卡任務查詢的api,接口uri也是便於理解。
image
總覽處可以看到請求方法接口url以及相關狀態,在確定接口內容時可以切換到響應頁分析響應頁的數據,來確定接口的作用,
image
根據接口返回數據分析,可以得出接口返回的簽到任務信息。因此可以采用python向接口發請求來獲取簽到信息,切換到請求頁來分析接口入參需要哪些數據,此接口入參沒有帶數據此處就不給出截圖。同理采用同樣方法,也可以獲取到簽到任務的url,這里直接給出任務的相關接口及入參

#打卡接口 
#請求方式 POST
url = "https://***.campusphere.net/wec-counselor-sign-apps/stu/sign/submitSign"
#遞交參數json
        data = json.dumps({
        "abnormalReason": "",
        "position": "江蘇省南京市江寧區行知大道",
        "longitude": 118.91106677453745,
        "isNeedExtra": 1,
        "latitude": 31.899435298851706, #經緯度
        "isMalposition":0,
        "signVersion": "1.0.0",
        "extraFieldItems": [
         {
             "extraFieldItemWid": 715253,
            "extraFieldItemValue": "36.3" #體溫信息
         }
            ],
            "signPhotoUrl": "",
            "uaIsCpadaily":"true",
            "signInstanceWid": sWid #此參數需要通過簽到任務獲取
        })
#查詢簽到任務
#unSignedTasks 中獲取字段 singnInstanceWid
#
url2 = "https://***.campusphere.net/wec-counselor-sign-apps/stu/sign/getStuSignInfosInOneDay"

此處准備工作就基本完成

都是一些基礎操作,這里就不給出代碼了。為了保證不漏卡,需要引入輔助道具,首先阿里的函數計算可以通過cron表達式來准點觸發,這樣就可完全解放雙手,其次為了保證每天都打卡了,利用server醬來及時告知打卡狀態,在打卡環節中通過消息將打卡結果推送到微信,這樣便可以確保不漏簽了。

完成以上這些,就可以持續霸榜校園了,不過打卡
image
還有一些注意事項后續再補充吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM