女朋友开学抢课,由于学校官网过于“强大”,登录就立马掉出,未能及时选到课,后知后觉写一个抢课脚本,希望补救一下!

代码如下:

第一部分:自动登录

    //自动填入账号信息
    document.querySelector("#userAccount").value=账号;
    document.querySelector("#userPassword").value="密码";
    //点击登录按钮
    document.querySelector("#ul1 > li:nth-child(5) > button").click();
    //判断是否存在进入选课按钮,有就点击
    var commenClass = document.querySelector("#topmenu > li.current > a");
    if(commenClass!=null){
        commenClass.click();
    }

第二部分:循环检查要选的类别里是否有可选课程,有就点击选课按钮

//点击公选课按钮
//document.querySelector("#topmenu > li:nth-child(4) > a").click();
var count = 0;
setInterval(function() {
    count = count + 1;
    let sleep = function(time) {
        let now = Date.now() // 获取当前毫秒数
        // 设置while循环,循环条件为:实时时间减去记录时间小于3s,否则则循环结束
        while (Date.now() - now < time) {}
    }
    console.log(count)
    //分类按钮顺序
    var num = [2, 5, 7];
    //获取下拉选框
    var options = document.getElementById('szjylb').children;
    //循环要选择的三个分类
    // for (var i = 0; i < num.length; i++) {
    //选择分类
    options[num[count % 3]].selected = true;
    //查询
    queryKxkcList();
    sleep(3000);
    setTimeout(() => {
        $("#dataView tbody tr").each(function() {
            var a = $(this).children(); //获取每一行
            var arr = a[7].innerText; //取得第三列的值
            console.log("课程名称:" + a[1].innerText + " 剩余量:" + arr);
            //遍历数据列表
            for (var j = 0; j < arr.length; j++) {
                if (arr[j] != 0) {
                    //点击选课按钮
                    a[10].children[0].children[0].click()
                }
            }
        });
    }, 2000);
    //获取数据列表        
    // }
}, 5000);