學習通--超星自動簽到(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,將其填入!!!

注意:目前這個只能監控一個科目,可以多開幾個這個腳本,分別掛着就行了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM