自动打卡脚本

奕辅导自动打卡脚本

打卡脚本,使用前需手动打卡一次并需要抓包,在其中找到相关的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.mzph.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…