耶耶耶耶耶 发表于 2025-4-11 22:30:48

安全微伴助手

感谢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]
查看完整版本: 安全微伴助手