【Python原创】职教云自动签到·稳定接口·requests
一.前言脚本用于智慧职教的课程签到,接口较为稳定。
如若认为有些用处请给予回复与评分,欢迎指出不足缺点,共同进步。
仅做个人学习使用,严禁用于其他用途。
二.开发环境
windows 11 22H2 Python 3.10 x64
三.调用模块
import requests
import json
import datetime
四.代码
'''
Author: 过往 Past
Date: 2022-11-01 09:12:32
LastEditors: Pycham
'''
#职教云自动签到
import requests
import json
import datetime
#全局变量区
user=""
passwd=''
headers = {"User-Agent": "Mozilla/5.0 (Linux; Android 10; 2206122SC Build/SKQ1.220303.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/103.0.5060.129 Mobile Safari/537.36 whatyApp whatyApiApp","content-type": "multipart/form-data; boundary=---011000010111000001101001"}
Authorization='Bearer '#职教权鉴
classsign=[]
#全局结束
def login():#登录职教云获取token并获取权鉴
global Authorization,headers
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mobile\"\r\n\r\n"+user+"\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"passwd\"\r\n\r\n"+passwd+"\r\n-----011000010111000001101001--\r\n\r\n"
querystring = {"token": json.loads(requests.request("POST", "https://user.icve.com.cn/m/peMobileLogin_accountLogin.action", data=payload, headers=headers).text)['token']}
Authorization = Authorization+json.loads(requests.request("POST", "https://user.icve.com.cn/m/zhzjMobile_getRestSsoToken.action", params=querystring).text)['data']["userAccessToken"]
headers["Authorization"]=Authorization
def getclass():#获取当日课程及其进行中的签到
global headers
classid=[]
del headers["content-type"]
headers['Host']='spoc-classroom.icve.com.cn'
payload = {"params": {"startDate": datetime.datetime.now().strftime("%Y-%m-%d"),"current": 1,"size": 8}}
for i in json.loads(requests.request("POST", "https://user.icve.com.cn/classroom-teaching-api/classroom/getClassroomByStudent", json=payload, headers=headers).text)['data']['data']["records"]:
classid.append(,i["courseName"]])
for i in classid:
payload = {"params": {"classroomId": i,"classroomTypeCode": 1},"page": {"curPage": 1,"pageSize": 10,"totalCount": 0,"totalPage": 0}}
for o in json.loads(requests.request("POST", "https://spoc-classroom.icve.com.cn/classroom-teaching-api/peClassroomActivity/student/classroomActivityList", json=payload, headers=headers).text)['data']["items"]:
if o["typeName"]=="签到":
if '已签到' not in requests.request("POST","https://spoc-classroom.icve.com.cn/classroom-teaching-api/sign/student/getSignResult",json={"params": {"id": o["recordId"]}}, headers=headers).text:
classsign.append(,o["id"],o["classroomName"],i])
del headers["Host"]
def gosign():#启动签到
if "0" not in str(len(classsign)):
for i in classsign:
r=requests.request("POST","https://spoc-classroom.icve.com.cn/classroom-teaching-api/sign/student/updateSignStatus",
json={"params": {"id": i,
"activityId": i}}, headers=headers)
if '签到成功' in r.text:
print(i+i+'签到成功')
else:
print("执行完毕没有可签到的项目")
if __name__ == '__main__':
login()
getclass()
gosign()
五.嗯..........
下个版本更新一下 微信推送 然后权鉴持久化存储 目前用着没什么问题 忽视其中的写法哈哈哈哈哈哈
土豪通道:
11月3日12点17分
报红
Traceback (most recent call last):
File "E:\Downloads\代码 (1).py", line 49, in <module>
login()
File "E:\Downloads\代码 (1).py", line 20, in login
querystring = {"token": json.loads(requests.request("POST", "https://user.icve.com.cn/m/peMobileLogin_accountLogin.action", data=payload, headers=headers).text)['token']}
KeyError: 'token'
哈哈哈哈,试试去 fzx33 发表于 2022-11-1 14:52
哈哈哈哈,试试去
欢迎反馈 末初 发表于 2022-11-3 12:19
11月3日12点17分
报红
Traceback (most recent call last):
密码错了
密码确认没有错噢 但是我在网页登录需要验证码 是不是这个原因
还是我哪里出错了 大佬求解 末初 发表于 2022-11-3 12:36
密码确认没有错噢 但是我在网页登录需要验证码 是不是这个原因
还是我哪里出错了 大佬求解
两套系统 Pastwill 发表于 2022-11-3 15:29
两套系统
https://www.zjy2.icve.com.cn/
不是这个咩 末初 发表于 2022-11-3 16:02
https://www.zjy2.icve.com.cn/
不是这个咩
不是哈,这个是另一套:lol 大佬这怎么用
页:
[1]