zoukankan      html  css  js  c++  java
  • 学习通--超星自动签到(Python)

      1 import requests
      2 import json
      3 import time
      4  
      5 #填入Cookie
      6 headers={
      7  "Cookie": "",
      8  "User-Agent": ""
      9 }
     10 #填入uid
     11 uid=""
     12 coursedata=[]
     13 activeList=[]
     14 course_index=0
     15 speed=10
     16 status=0
     17 status2=0
     18 activates=[]
     19 def backclazzdata():
     20  global coursedata
     21  url="http://mooc1-api.chaoxing.com/mycourse/backclazzdata?view=json&rss=1"
     22  res=requests.get(url,headers=headers)
     23  cdata=json.loads(res.text)
     24  if(cdata['result']!=1):
     25   print("请补充Cookie否则课程列表获取失败")
     26   return 0
     27  for item in cdata['channelList']:
     28   if("course" not in item['content']):
     29    continue
     30   pushdata={}
     31   pushdata['courseid']=item['content']['course']['data'][0]['id']
     32   pushdata['name']=item['content']['course']['data'][0]['name']
     33   pushdata['imageurl']=item['content']['course']['data'][0]['imageurl']
     34   pushdata['classid']=item['content']['id']
     35   coursedata.append(pushdata)
     36  print("获取成功") 
     37  #print(coursedata) 
     38  printdata()
     39  
     40 def printdata():
     41  global course_index,speed
     42  index=1
     43  for item in coursedata:
     44   print(str(index)+".课程名称:"+item['name'])
     45   index+=1
     46  course_index=int(input("请输入监控课程监控课程序号:"))-1
     47  print("监控课程设定完成")
     48  speed=int(input("请输入监控频率:")) #频率是监控的速度,一格10秒,适中选择就好
     49  print("监控频率设置完毕")
     50  res=input("输入start启动监控:")
     51  if(res=="start"):
     52   startsign()
     53  else:
     54   printdata 
     55  
     56 def taskactivelist(courseId,classId):
     57  global activeList
     58  url="https://mobilelearn.chaoxing.com/ppt/activeAPI/taskactivelist?courseId="+str(courseId)+"&classId="+str(classId)+"&uid="+uid
     59  res=requests.get(url,headers=headers)
     60  data=json.loads(res.text)
     61  activeList=data['activeList']
     62  #print(activeList)
     63  for item in activeList:
     64   if("nameTwo" not in item):
     65    continue
     66   if(item['activeType']==2 and item['status']==1):
     67    signurl=item['url']
     68    aid = getvar(signurl)
     69    if(aid not in activates):
     70     print("【签到】查询到待签到活动 活动名称:%s 活动状态:%s 活动时间:%s aid:%s"%(item['nameOne'],item['nameTwo'],item['nameFour'],aid))
     71     sign(aid,uid) 
     72  
     73 def getvar(url):
     74  var1 = url.split("&")
     75  for var in var1:
     76   var2 = var.split("=")
     77   if(var2[0]=="activePrimaryId"):
     78    return var2[1]
     79  return "ccc" 
     80  
     81  
     82  
     83 def sign(aid,uid):
     84  global status,activates
     85  url="https://mobilelearn.chaoxing.com/pptSign/stuSignajax?activeId="+aid+"&uid="+uid+"&clientip=&latitude=-1&longitude=-1&appType=15&fid=0"
     86  res=requests.get(url,headers=headers)
     87  if(res.text=="success"):
     88   print("用户:"+uid+" 签到成功!")
     89   activates.append(aid)
     90   status=2
     91  else:
     92   print("签到失败") 
     93   activates.append(aid) 
     94  
     95 def startsign():
     96  global status,status2
     97  status=1
     98  status2=1
     99  ind=1
    100  print("监控启动 监控课程为:%s 监控频率为:%s"%(coursedata[course_index]['name'],str(speed)))
    101  while(status!=0 and status2!=0):
    102   ind+=1
    103   taskactivelist(coursedata[course_index]['courseid'],coursedata[course_index]['classid'])
    104   time.sleep(speed)
    105   if(status==1):
    106    print(str(ind)+" [签到]监控运行中,未查询到签到活动")
    107   elif(status==2):
    108    print(str(ind)+" [新签到]监控运行中,未查询到签到活动")   
    109  print("任务结束")
    110  printdata()
    111  
    112 backclazzdata()

    每个人的cookie都不一样的,所以劳烦自行到浏览器检索网页,查询自己的cookie,将其填入!!!

    注意:目前这个只能监控一个科目,可以多开几个这个脚本,分别挂着就行了。

  • 相关阅读:
    学习笔记CB002:词干提取、词性标注、中文切词、文档分类
    学习笔记CB001:NLTK库、语料库、词概率、双连词、词典
    从零开始在iPhone上运行视频流实时预测模型应用,只需10步
    学习笔记DL008:概率论,随机变量,概率分布,边缘概率,条件概率,期望、方差、协方差
    学习笔记DL007:Moore-Penrose伪逆,迹运算,行列式,主成分分析PCA
    学习笔记DL005:线性相关、生成子空间,范数,特殊类型矩阵、向量
    学习笔记DL004:标量、向量、矩阵、张量,矩阵、向量相乘,单位矩阵、逆矩阵
    学习笔记DL003:神经网络第二、三次浪潮,数据量、模型规模,精度、复杂度,对现实世界冲击
    学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
    学习笔记TF067:TensorFlow Serving、Flod、计算加速,机器学习评测体系,公开数据集
  • 原文地址:https://www.cnblogs.com/SkystarX/p/12563556.html
Copyright © 2011-2022 走看看