自動打卡腳本

奕輔導自動打卡腳本

打卡腳本,使用前需手動打卡一次并需要抓包,在其中找到相關的token。

# -*- encoding:utf-8 -*-import requests
import jsonpunch_in_data = {"questionnairePublishEntityId": "1001640744275339000980000000001","answerInfoList": [{"subjectId": "1001640315554537000980000000001","subjectType": "multiSelect","multiSelect": {"optionAnswerList": [{"beSelectValue": "NotThing","fillContent": ""}]}},{"subjectId": "1001640672356535001000000000001","subjectType": "location","location": {'address':'**市**區***','area':'**區','city':'**市','deviationDistance':'1******','latitude':'','locationRangeId':'','longitude':'','province':'**省','street':'**'}},{"subjectId": "1001647490263982000200000000001","subjectType": "multiSelect","optionAnswerList": {'attachmentList':'(null)','beSelectValue':'1',"fillContent": ""}},{"subjectId": "1001647684101571001820000000001","subjectType": "multiSelect","optionAnswerList": {"beSelectValue": "1","fillContent": ""}},]
}class YiFuDao_Puncher:def __init__(self):self.base_url = "https://yfd.ly-sky.com"self.header = {"accessToken": '',#填入抓取的token"userAuthType": "MS"}self.puncher_status = "💚 打卡腳本初始化中"self.check_in_index()def check_in_index(self):try:url = "/ly-pd-mb/form/api/healthCheckIn/client/stu/index"id=Noneretry=3while id is None and retry>=0:retry-=1res = requests.get(self.base_url+url, headers=self.header)parse_data = json.loads(res.text)detail = dict.get(parse_data,"data")id = dict.get(detail,"questionnairePublishEntityId")        # 表單ID,每日不同filling_status = dict.get(detail, "hadFill")                # 填寫狀態start_time = dict.get(detail, "fillStartTime")  # 獲取問卷開始時間if start_time:breakprint("💚 打卡腳本初始化完成")self.puncher_status = "? 已獲取健康打卡信息"if id is None:if start_time is not None:self.puncher_status = "? 還未到打卡時間,腳本自動結束"print("? 還未到打卡時間,腳本自動結束")else:self.puncher_status = "? 獲取問卷失敗,請稍后重試"print("? 獲取問卷失敗,請稍后重試")return 0if filling_status is False:self.puncher_status = "? 今天暫未打卡,嘗試進行打卡"self.check_in_detail(str(id))else:self.puncher_status = "? 今天已經打卡,腳本自動結束"print("? 今天已經打卡,腳本自動結束")return 0except Exception as e:self.puncher_status = "? 獲取健康打卡信息失敗"print("? 獲取健康打卡信息失敗")def check_in_detail(self,id):try:url = "/ly-pd-mb/form/api/questionnairePublish/" + str(id) + "/getDetailWithAnswer"res = requests.get(self.base_url+url,headers=self.header)parse_data = json.loads(res.text)subjectList = dict.get(dict.get(dict.get(parse_data,"data"),"questionnaireWithSubjectVo"),"subjectList")question_id_list = []answer_id_list = []for i in subjectList:question_id_list.append(i["id"])for i in punch_in_data["answerInfoList"]:answer_id_list.append(i["subjectId"])# 判斷預設答案與當前問卷的項是否相符if answer_id_list == question_id_list:punch_in_data["questionnairePublishEntityId"] = str(id)self.puncher_status = "? 預設答案與當前問卷的項相符,本次打卡的問卷id為{}".format(punch_in_data["questionnairePublishEntityId"])print("? 預設答案與當前問卷的項相符,本次打卡的問卷id為{}".format(punch_in_data["questionnairePublishEntityId"]))self.check_in_save()else:self.puncher_status = "? 預設答案與當前問卷的項不相符,腳本已結束"print("? 預設答案與當前問卷的項不相符,腳本已結束")return 0except Exception as e:print("? 獲取問卷詳情失敗")def check_in_save(self):try:url = "/ly-pd-mb/form/api/answerSheet/saveNormal"header = self.headerheader["Content-Type"] = "application/json"res = requests.post(self.base_url+url,data=json.dumps(punch_in_data),headers=header)parse_data = json.loads(res.text)if parse_data["code"] == 200:self.puncher_status = "? 打卡成功,{}".format(parse_data["message"])print("? 打卡成功,{}".format(parse_data["message"]))else:self.puncher_status = "? 打卡失敗,{}".format(parse_data["message"])except Exception as e:print("? 打卡失敗")
if __name__=="__main__":YiFuDao_Puncher().check_in_save()

自動打卡的實現則需要去部署騰訊云函數(其它廠商的也行),在云函數中設置執行周期。相關的實現教程請前往云函數部署教程。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14382.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14382.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14382.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MyBatis:Parameter Maps collection does not contain value for 報錯解決收錄

MyBatis:Parameter Maps collection does not contain value for 報錯問題解決收錄 1.報錯收錄 后端測試時偶然遇到的用mybatis生成好的mapper文件,報Result Maps collection does not contain value…的錯誤 2.報錯分析 java.lang.ILledalAraumentEx…

必應bing國內廣告開戶首充和開戶費是多少?

微軟必應Bing作為國內領先的搜索引擎之一,其廣告平臺憑借其精準的投放、高效的數據分析和廣泛的用戶覆蓋,已成為眾多企業的首選。 根據最新政策,2024年必應Bing國內廣告開戶預充值金額設定為1萬元人民幣起。這一調整旨在確保廣告主在賬戶初始…

【嵌入式DIY實例】-OLED顯示DHT22傳感器數據

OLED顯示DHT22傳感器數據 1、應用實例介紹 本次實例將演示如何在OLED中顯示DHT22溫度濕度傳感器的數據。實例主要分兩步來完成: DHT22傳感器驅動,采集溫度和濕度OLED驅動,顯示采集到的溫度值和濕度值。在前面的文章中,對OLED的應用和驅動做了介紹,請參考: ESP8266-Ardu…

1.Nginx上配置 HTTPS

1.安裝 Nginx: 如果還沒有安裝 Nginx,可以使用包管理工具安裝。例如,在 Ubuntu 上: sudo apt update sudo apt install nginx2.上傳證書和私鑰文件: 將你的證書文件和私鑰文件上傳到服務器上的某個目錄,…

VBA宏指令寫的方法突然不能用了

背景:項目組有個自動化測試項目,實在excel中利用VBA開發的;時間比較久遠,我前面的哥們走后,這個軟件一直在用,最近系統不知道是不是更新的緣故;有些代碼除了問題; 先上源碼: Dim Conn As Object, Rst As Object Dim sqlStr$ Dim str_start_SN$, str2$ str_start_SN …

python 線性回歸模型

教材鏈接-3.2. 線性回歸的從零開始實現 c實現 該博客僅用于記錄一下自己的代碼,可與c實現作為對照 from d2l import torch as d2l import torch import random # nn是神經網絡的縮寫 from torch import nn from torch.utils import data# 加載訓練數據 # 加載訓…

什么是網關,網關有哪些作用?

網關(Gateway)是在計算機網絡中用于連接兩個獨立的網絡的設備,它能夠在兩個不同協議的網絡之間傳遞數據。在互聯網中,網關是一個可以連接不同協議的網絡的設備,比如說可以連接局域網和互聯網,它可以把局域網 的內部網絡地址轉換成…

論文閱讀--GLIP

把detection和phrase ground(對于給定的sentence,要定位其中提到的全部物體)這兩個任務合起來變成統一框架,從而擴展數據來源,因為文本圖像對的數據還是很好收集的 目標檢測的loss是分類loss定位loss,它與phrase ground的定位los…

爬蟲學習--11.MySQL數據庫的基本操作(上)

MySQL數據庫的基本操作 創建數據庫 我們可以在登陸 MySQL 服務后,使用命令創建數據庫,語法如下: CREATE DATABASE 數據庫名; 顯示所有的數據庫 show databases; 刪除數據庫 使用普通用戶登陸 MySQL 服務器,你可能需要特定的權限來創建或者刪…

Docker部署Minio小記

概述 因為工作需要搭建對象存儲的測試環境,故而使用Docker部署Minio,測試通過博文記錄用以備忘 步驟 拉取鏡像 docker pull minio/minio啟動容器 docker run -p 9000:9000 -p 9090:9090 \--name minio \-d --restartalways \-e "MINIO_ACCESS_K…

內臟油脂是什么?如何減掉?

真想減的人,減胖是很容易的,但想要形體美又健康,還是得從減內臟油脂開始,那么,問題來了,什么是內臟油脂? 油脂它分部于身體的各個角落,四肢、腹部、腰、臀部、臉、脖子...等&#xf…

VUE3+TS+elementplus創建table,純前端的table

一、前言 開始學習前端,直接從VUE3開始,從簡單的創建表格開始。因為自己不是專業的程序員,編程主要是為了輔助自己的工作,提高工作效率,VUE的基礎知識并不牢固,主要是為了快速上手,能夠做出一些…

Kubernetes中 Requests 和 Limits 的初步理解

1 靈魂拷問 我們在使用 Kubernetes 時是否遇到以下情況: 你會不會部署負載的時候將 CPU requests/limits 設置得過低或過高?你會不會部署負載的時候將 內存 requests/limits 設置得過低或過高?又或者你根本不設置 requests/limits&#xff…

SVN創建項目分支

目錄 背景調整目錄結構常規目錄結構當前現狀目標 調整SVN目錄調整目錄結構創建項目分支 效果展示 背景 當前自己本地做項目的時候發現對SVN創建項目不規范,沒有什么目錄結構,趁著創建目錄分支的契機,順便調整下SVN服務器上的目錄結構 調整目…

Stable Diffusion WebUI使用inpaint anything插件實現圖片局部重繪

Inpaint Anything是一個強大的圖像處理工具,它結合了SAM(Segment Anything Model)、圖像修補模型(如LaMa)和AIGC模型(如Stable Diffusion)等先進技術,以實現圖像中物體的移除、內容的填補以及場景的替換。無論是對圖像中的任何元素進行編輯,還是對圖像整體進行場景轉換…

【Vue】Vue2使用ElementUI

目錄 Element UI介紹特點Vue2使用Element安裝引入ElementUI組件庫 使用ElementUI用戶注冊列表展示其他 mint-ui介紹特點安裝組件引入組件Mint-ui相關組件 Element UI 介紹 官網(基于 Vue 2.x ):https://element.eleme.cn/#/zh-CN ElementUI 是一個基于 Vue.js 的桌面端組件庫…

Vue文本溢出如何自動換行

css新增 word-break: break-all; word-wrap: break-word;

【Linux系統】文件與基礎IO

本篇博客整理了文件與文件系統、文件與IO的相關知識,借由庫函數、系統調用、硬件之間的交互、操作系統管理文件的手段等,旨在讓讀者更深刻地理解“Linux下一切皆文件”。 【Tips】文件的基本認識 文件 內容 屬性。文件在創建時就有基本屬性&#xff0…

網易:一季度營收269億元,連續7季研發強度超15%領跑行業

5月23日,網易發布2024年第一季度財報。財報顯示,網易Q1營收269億元,歸屬于公司股東的凈利潤85億元(Non-GAAP),以連續7個季度超15%的研發投入強度領跑行業,首季業績穩健啟航。 一季度&#xff0…

JVM學習-動態鏈接和方法返回地址

動態鏈接–指向運行時常量池的方法引用 每一個棧幀內部包含一個指向運行時常量池中該棧幀所屬方法的引用,包含這個引用的目的為了支持當前方法的代碼能夠實現動態鏈接(Dynamic Linking),如invokednamic指令。在Java源文件被編譯到字節碼文件中時&#x…