安全微伴助手

打印 上一主题 下一主题

主题 1640|帖子 1640|积分 4920

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
感谢git上的GitHub - Coaixy/weiban-tool: 安全微伴自动刷课助手项目提供的api以及思绪
  1. import requests
  2. import time
  3. import re
  4. import random
  5. import os
  6. import json
  7. j = 0
  8. ts = int(time.time()*1000)
  9. session = requests.Session()
  10. XToken = "7f6c31e5-07ca-4c40-be98-40cb4b1ca176"
  11. userId = "a5035f91-a2ee-42f6-a8f0-da2f7c98f281"
  12. userProjectId = "75a173d5-5ed0-47b3-ab69-5ecef2578bc0"
  13. headers = {
  14.     "ContentType": "application/x-www-form-urlencoded;charset=UTF-8",
  15.     "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",
  16.     "X-Token": XToken,
  17.     "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',
  18.     "Accept": 'application/json, text/plain, */*'
  19.             }
  20. categoryCodes = ['101001001', '101003006', '101004002', '101004003', '101004007', '101005001']
  21. categoryCodes2 = []
  22. data0 = {"tenantCode":        "4152011731",
  23.         "userId": userId,
  24.         "userProjectId": userProjectId,
  25.         "chooseType": "3",
  26.         "categoryCode":        ""}#遍历找courseid
  27. url = "https://weiban.mycourse.cn/pharos/usercourse/listCourse.do"
  28. urlcd = "https://weiban.mycourse.cn/pharos/usercourse/getCourseUrl.do?"
  29. data = {"tenantCode":        "4152011731",
  30.         "userId": userId,
  31.         "courseId": " ",
  32.         "userProjectId": userProjectId,
  33.         }#请求userCourseId
  34. for i in categoryCodes:
  35.     data0["categoryCode"] = i
  36.     res = requests.post(url, data0, headers=headers).text
  37.     print(res)
  38.     ResourceIds = re.findall(r'"resourceId":"([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})"', res)
  39.     for ResourceId in ResourceIds:
  40.         data["courseId"] = ResourceId
  41.         userCourseId = session.post(urlcd, data, headers=headers).text
  42.         match = re.search(r'userCourseId\\u003d([a-f0-9\-]+)', userCourseId)
  43.         user_course_id = match.group(1)
  44. #启动课程
  45.         urlstar = "https://weiban.mycourse.cn/pharos/usercourse/study.do"
  46.         data1 = {
  47.             "userProjectId": userProjectId,
  48.             "tenantCode": "4152011731",
  49.             "userId": userId,
  50.             "courseId": ResourceId,
  51.         }
  52.         text1 = session.post(url=urlstar, data=data1, headers=headers).text
  53.         print("等待刷课————")
  54.         time.sleep(random.randint(15, 20))
  55. #构造完成请求
  56.         genrand = ("3.4.1" + str(random.random())).replace(".", "")
  57.         finurl = "https://open.mycourse.cn/proteus/usercourse/finish.do"
  58.         finurl1 = finurl.format(user_course_id)
  59.         finish_url = "https://weiban.mycourse.cn/pharos/usercourse/v2/{}.do"
  60. #验证码
  61.         url4 = "https://weiban.mycourse.cn/pharos/usercourse/getCaptcha.do"
  62.         params1 = {
  63.             "userCourseId": user_course_id,
  64.             "userProjectId": userProjectId,
  65.             "userId": userId,
  66.             "tenantCode": "4152011731"
  67.         }
  68.         text = requests.get(url4, headers=headers, params=params1).text
  69.         question_id = json.loads(text)['captcha']['questionId']
  70.         url5 = "https://weiban.mycourse.cn/pharos/usercourse/checkCaptcha.do"
  71.         params8 = {
  72.             "userCourseId": user_course_id,
  73.             "userProjectId": userProjectId,
  74.             "userId": userId,
  75.             "tenantCode": "4152011731",
  76.             "questionId": question_id
  77.         }
  78.         data123 = {
  79.             "coordinateXYs": "[{"x":77,"y":417},{"x":162,"y":426},{"x":211,"y":417}]"
  80.         }
  81.         text123 = session.post(url5, headers=headers, params=params8, data=data123).text
  82.         token =json.loads(text123)['data']['methodToken']
  83.         finish_url = finish_url.format(token)
  84.         param = {
  85.                         "callback": "jQuery{}_{}".format(genrand, ts),
  86.                         "userCourseId": user_course_id,
  87.                         "tenantCode": 4152011731,
  88.                         "_": str(ts + 1),
  89.                     }
  90.         text = requests.get(finish_url, params=param, headers=headers).text
  91.         while True:
  92.             if ('{"msg":"ok"' in text):
  93.                 j = j + 1
  94.                 print("第{}次刷课成功".format(j))
  95.                 break
  96.             else:
  97.                 text = requests.get(finish_url, params=param, headers=headers).text
复制代码
        第一次写,写的太差了,由于谁人登录的表单似乎加密了,得不到有效的data,以是我干脆用x—token登录,tenanCode我们学校都是一样的我也懒得改了,categoryCodes也必要改,我还必要二改的,先不用慌。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

耶耶耶耶耶

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表