安全微伴助手
感谢git上的GitHub - Coaixy/weiban-tool: 安全微伴自动刷课助手项目提供的api以及思绪import requests
import time
import re
import random
import os
import json
j = 0
ts = int(time.time()*1000)
session = requests.Session()
XToken = "7f6c31e5-07ca-4c40-be98-40cb4b1ca176"
userId = "a5035f91-a2ee-42f6-a8f0-da2f7c98f281"
userProjectId = "75a173d5-5ed0-47b3-ab69-5ecef2578bc0"
headers = {
"ContentType": "application/x-www-form-urlencoded;charset=UTF-8",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
"X-Token": XToken,
"Accept-Language": 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
"Accept": 'application/json, text/plain, */*'
}
categoryCodes = ['101001001', '101003006', '101004002', '101004003', '101004007', '101005001']
categoryCodes2 = []
data0 = {"tenantCode": "4152011731",
"userId": userId,
"userProjectId": userProjectId,
"chooseType": "3",
"categoryCode": ""}#遍历找courseid
url = "https://weiban.mycourse.cn/pharos/usercourse/listCourse.do"
urlcd = "https://weiban.mycourse.cn/pharos/usercourse/getCourseUrl.do?"
data = {"tenantCode": "4152011731",
"userId": userId,
"courseId": " ",
"userProjectId": userProjectId,
}#请求userCourseId
for i in categoryCodes:
data0["categoryCode"] = i
res = requests.post(url, data0, headers=headers).text
print(res)
ResourceIds = re.findall(r'"resourceId":"({8}-{4}-{4}-{4}-{12})"', res)
for ResourceId in ResourceIds:
data["courseId"] = ResourceId
userCourseId = session.post(urlcd, data, headers=headers).text
match = re.search(r'userCourseId\\u003d(+)', userCourseId)
user_course_id = match.group(1)
#启动课程
urlstar = "https://weiban.mycourse.cn/pharos/usercourse/study.do"
data1 = {
"userProjectId": userProjectId,
"tenantCode": "4152011731",
"userId": userId,
"courseId": ResourceId,
}
text1 = session.post(url=urlstar, data=data1, headers=headers).text
print("等待刷课————")
time.sleep(random.randint(15, 20))
#构造完成请求
genrand = ("3.4.1" + str(random.random())).replace(".", "")
finurl = "https://open.mycourse.cn/proteus/usercourse/finish.do"
finurl1 = finurl.format(user_course_id)
finish_url = "https://weiban.mycourse.cn/pharos/usercourse/v2/{}.do"
#验证码
url4 = "https://weiban.mycourse.cn/pharos/usercourse/getCaptcha.do"
params1 = {
"userCourseId": user_course_id,
"userProjectId": userProjectId,
"userId": userId,
"tenantCode": "4152011731"
}
text = requests.get(url4, headers=headers, params=params1).text
question_id = json.loads(text)['captcha']['questionId']
url5 = "https://weiban.mycourse.cn/pharos/usercourse/checkCaptcha.do"
params8 = {
"userCourseId": user_course_id,
"userProjectId": userProjectId,
"userId": userId,
"tenantCode": "4152011731",
"questionId": question_id
}
data123 = {
"coordinateXYs": "[{\"x\":77,\"y\":417},{\"x\":162,\"y\":426},{\"x\":211,\"y\":417}]"
}
text123 = session.post(url5, headers=headers, params=params8, data=data123).text
token =json.loads(text123)['data']['methodToken']
finish_url = finish_url.format(token)
param = {
"callback": "jQuery{}_{}".format(genrand, ts),
"userCourseId": user_course_id,
"tenantCode": 4152011731,
"_": str(ts + 1),
}
text = requests.get(finish_url, params=param, headers=headers).text
while True:
if ('{"msg":"ok"' in text):
j = j + 1
print("第{}次刷课成功".format(j))
break
else:
text = requests.get(finish_url, params=param, headers=headers).text
第一次写,写的太差了,由于谁人登录的表单似乎加密了,得不到有效的data,以是我干脆用x—token登录,tenanCode我们学校都是一样的我也懒得改了,categoryCodes也必要改,我还必要二改的,先不用慌。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]