青苜網 某知識競賽學習時長腳本

由於學校要求。需要我們完成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("&nbsp;","")
    grade_id = response.text.split("<p>學籍號:")[1].split("</p>")[0]
    school = response.text.split("<p>學校:")[1].split("</p>")[0].replace("&nbsp;","")
    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()

運行效果:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章