住房城乡建设行业从业人员教育培训平台自动搜题脚本

住房城乡建设行业从业人员教育培训平台自动搜题脚本

使用教程:

1、下载CORS Unblock浏览器插件。

2、浏览器的网站设置里面设置不安全内容允许

配置爱点的API和token,此API使用的是爱点的直出答案API。

爱点网址: https://www.51aidian.com/   邀请码:double666

// ==UserScript==
// @name         住房城乡建设行业从业人员教育培训平台自动搜题(八大员)
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  自动搜题并显示答案
// @author       砼道中人
// @match        https://zyk.etledu.com/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    const apiUrl = 'API地址'; // 爱点的API 地址
    const token = 'token';
    let isAutoAnswering = false;
    let currentQuestionIndex = 0;

    // 选择出现次数最多的答案
    function getMostFrequentAnswer(answers) {
        const answerCount = {};

        answers.forEach(answer => {
            answer = answer.replace(/<br.*?>/g, '').trim().toLowerCase(); // 去除 HTML 标签并统一为小写
            answerCount[answer] = (answerCount[answer] || 0) + 1;
            console.log(`答案: ${answer}, 当前计数: ${answerCount[answer]}`);
        });

        const mostFrequent = Object.entries(answerCount).reduce((prev, curr) => {
            return (prev[1] > curr[1]) ? prev : curr;
        });

        console.log('当前计数:', answerCount);
        console.log(`最常见的答案是: ${mostFrequent[0]}`);
        return mostFrequent[0]; // 返回出现次数最多的答案
    }


 // 搜索并显示题目答案
function searchAndDisplayAnswer(questionElement) {
    const questionText = questionElement.textContent.trim();
    const requestBody = {
        token: token,
        question: questionText
    };

    console.log('请求体:', JSON.stringify(requestBody));

    fetch(apiUrl, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(requestBody)
    })
    .then(response => {
        if (!response.ok) {
            throw new Error('网络响应没有正常返回');
        }
        return response.json();
    })
    .then(data => {
        console.log('API 返回数据:', data);

        if (data.code === 1 && data.msg === "获取成功" && data.qlist.length > 0) {
            const answers = data.qlist.map(item => item.answer).flat(); // 获取所有答案并展平数组
            const answerToShow = getMostFrequentAnswer(answers); // 获取出现次数最多的答案

            // 确保有效答案
            if (answerToShow) {
                // 将答案转换为大写
                const upperCaseAnswer = answerToShow.toUpperCase();

                // 在问题旁边显示答案
                const answerDiv = document.createElement('div');
                answerDiv.style.marginLeft = '20px';
                answerDiv.style.display = 'inline-block';
                answerDiv.style.padding = '5px';
                answerDiv.style.border = '1px solid #ccc';
                answerDiv.style.backgroundColor = '#f9f9f9';
                answerDiv.style.color = 'red'; // 设置文本颜色为红色
                answerDiv.innerHTML = `答案: ${upperCaseAnswer}`; // 使用大写答案
                questionElement.parentNode.appendChild(answerDiv);
            } else {
                console.error('没有找到有效的答案。');
            }
        } else {
            console.error('API 返回错误:', data.msg);
        }
    })
    .catch(error => console.error('请求错误:', error));
}


    // 处理题目
    function processQuestions() {
        const questionLists = document.querySelectorAll('ul.layui-form.dx_ulamn, ul.layui-form.dx_ulamnq'); // 选择题目
        if (currentQuestionIndex < questionLists.length && isAutoAnswering) {
            const questionList = questionLists[currentQuestionIndex];
            const questionElement = questionList.querySelector('li'); // 获取题目文本

            searchAndDisplayAnswer(questionElement); // 搜题并显示答案

            currentQuestionIndex++; // 移动到下一个题目
            setTimeout(processQuestions, 3000); // 每3秒处理一个题目
        } else {
            isAutoAnswering = false; // 停止自动答题
            alert('所有题目已处理完毕。'); // 提示用户
        }
    }

    // 开始自动搜题
    function startAutoAnswer() {
        isAutoAnswering = true; // 设置为自动答题状态
        currentQuestionIndex = 0; // 重置题目索引
        startButton.disabled = true; // 禁用开始按钮
        stopButton.disabled = false; // 启用停止按钮
        processQuestions(); // 开始处理题目
    }

    // 停止自动搜题
    function stopAutoAnswer() {
        isAutoAnswering = false; // 设置为停止状态
        currentQuestionIndex = 0; // 重置题目索引
        startButton.disabled = false; // 启用开始按钮
        stopButton.disabled = true; // 禁用停止按钮
        alert('自动搜题已停止。'); // 提示用户
    }

    // 添加开始按钮
    const startButton = document.createElement('button');
    startButton.innerHTML = '开始搜题';
    startButton.style.position = 'fixed';
    startButton.style.top = '10px';
    startButton.style.right = '10px';
    startButton.style.zIndex = '1000';
    startButton.onclick = startAutoAnswer;
    document.body.appendChild(startButton);

    // 添加停止按钮
    const stopButton = document.createElement('button');
    stopButton.innerHTML = '停止搜题';
    stopButton.style.position = 'fixed';
    stopButton.style.top = '50px';
    stopButton.style.right = '10px';
    stopButton.style.zIndex = '1000';
    stopButton.onclick = stopAutoAnswer;
    stopButton.disabled = true; // 初始禁用停止按钮
    document.body.appendChild(stopButton);

})();
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容