青苜网 某知识竞赛学习时长脚本

由于学校要求。需要我们完成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()

运行效果:

在这里插入图片描述

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