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,將其填入!!!
注意:目前這個只能監控一個科目,可以多開幾個這個腳本,分別掛着就行了。
