由於學校要求。需要我們完成10個小時的知識競賽學習。
這個平臺有一個問題,就是每5分鐘會有彈窗要求點擊,然後才能繼續學習時長的積累。
這邊通過網頁的抓包找到了模擬數據包來僞造學習過程的接口,從而實現全自動的刷取學習時間。
下面不多說,直接放出源代碼。
網站地址:http://www.cimo.cn/
import requests
import time
request = requests.session()
cookie = ""
login_csrf_token = ""
def login(id,password):
global cookie
global login_csrf_token
url = "http://www.cimo.cn/"
header = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0',
'Accept':'*/*',
'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-Encoding':'gzip, deflate',
'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With':'XMLHttpRequest',
'Origin':'http://www.cimo.cn',
'DNT':'1',
'Referer':'http://www.cimo.cn/',
}
response = request.get(url=url,headers=header)
login_csrf_token = response.text.split('<meta name="csrf-token" content="')[1].split("\"")[0]
cookies = requests.utils.dict_from_cookiejar(request.cookies)
cookie_new = cookie;
for key in cookies.keys():
cookie_new = cookie_new + key+"="+cookies[key]+";"
cookie = cookie_new
url = "http://www.cimo.cn/login"
header = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0',
'Accept':'*/*',
'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-Encoding':'gzip, deflate',
'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
'X-CSRF-TOKEN':login_csrf_token,
'X-Requested-With':'XMLHttpRequest',
'Origin':'http://www.cimo.cn',
'DNT':'1',
'Connection':'keep-alive',
'Referer':'http://www.cimo.cn/',
'Cookie':cookie,
}
post_data = {
'username':id,
'password':password,
'_token':login_csrf_token,
}
response = request.post(url=url,headers=header,data=post_data)
if "success" in response.text:
print("當前賬號:"+id+"登陸成功!");
cookies = requests.utils.dict_from_cookiejar(request.cookies)
cookie_new = ""
for key in cookies.keys():
cookie_new = cookie_new + key+"="+cookies[key]+";"
cookie = cookie_new
def get_random_question():
global login_csrf_token
global cookie
url = "http://www.cimo.cn/safetycontest/index"
header = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'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-Encoding':'gzip, deflate',
'Referer':'http://www.cimo.cn/',
'DNT':'1',
'Connection':'keep-alive',
'Cookie':'endtime=null; '+ cookie,
'Upgrade-Insecure-Requests':'1',
'Cache-Control':'max-age=0',
}
response = requests.get(url=url,headers=header)
name = response.text.split("<p>姓名:")[1].split("</p>")[0].replace(" ","")
grade_id = response.text.split("<p>學籍號:")[1].split("</p>")[0]
school = response.text.split("<p>學校:")[1].split("</p>")[0].replace(" ","")
print("姓名:"+name+"\t"+"學籍號:"+grade_id+"\t學校:"+school)
cookies = requests.utils.dict_from_cookiejar(request.cookies)
cookie_new = ""
for key in cookies.keys():
cookie_new = cookie + key+"="+cookies[key]+";"
cookie = cookie_new
def start():
global login_csrf_token
global cookie
now_time = (int)(1574210646755)
url = "http://www.cimo.cn/safetycontest/count-time"
i = 0
while True:
#cookie_neibu = cookie + "UM_distinctid=16e860c0cf01c-04ecb14afed41e8-4c302b7a-100200-16e860c0cf11a6; CNZZDATA1264409366=564997722-1574206261-%7C1574211661; _ga=GA1.2.1765102831.1574206968; _gid=GA1.2.1263742891.1574206968; _gat_gtag_UA_151348870_1=1"
if i == 0:
cookie_new_2 = cookie+"endtime=1574299985201; "
else:
now_time = now_time+39288
cookie_new_2 = cookie_new + " endtime="+str(now_time)+"; "
header = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0',
'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-Encoding':'gzip, deflate',
'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
'X-CSRF-TOKEN':login_csrf_token,
'X-Requested-With':'XMLHttpRequest',
'Origin':'http://www.cimo.cn',
'Connection':'keep-alive',
'Referer':'http://www.cimo.cn/safetycontest/random-questions?page=6',
'Cookie':cookie_new_2,
}
post_data = {
'_token': login_csrf_token,
}
response = request.post(url=url,headers=header,data=post_data)
cookies = requests.utils.dict_from_cookiejar(request.cookies)
for key in cookies.keys():
cookie_new = cookie + key+"="+cookies[key]+";"
num_minute = (int)(response.text.split('"data":')[1].split(",")[0])
hour = (int)(num_minute/3600);
minute = (int)((num_minute-(3600*hour))/60)
second = (int)(((num_minute-(3600*hour))-(60*minute)))
print("當前學習時間爲:%s小時 %s分鐘 %s秒"%(hour,minute,second))
time.sleep(1)
i = i+1
print("青苜網刷時長工具!作者QQ:1152193204!")
id = input("id:")
password = input("password:")
login(id,password)
get_random_question()
start()
運行效果: