js自动填写问卷星

Posted eyes++

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js自动填写问卷星相关的知识,希望对你有一定的参考价值。

偶然发现问卷星的填写不需要身份验证,就萌生了一个念头,就是用脚本自动填写问卷星,以下代码不具有普遍性,因此我没有在油猴脚本上发布,当然稍微改一改还是能用的。

// ==UserScript==
// @name         刷问卷星问卷
// @namespace    https://eyesblog.gitee.io
// @version      1.0.0
// @author       eyes++
// @match        *://*/*
// @require      https://cdn.staticfile.org/jquery/3.5.0/jquery.min.js
// @grant        none
// ==/UserScript==

(function () 
    'use strict';

    function sub() 
        $.each($(".ulradiocheck"), function (i, v) 
            if (i == 0) 
                // 第一项为性别填写,设置为选项一(男)70%,选项二(女)30%
                let n = Math.floor(Math.random() + 0.3);
                v.getElementsByTagName("li")[n].click();
             else if (i == 1) 
                // 第二项为年级填写,设置第一项和第二项35%,其他3项各10%
                let n = Math.random();
                if (n <= 0.35) v.getElementsByTagName("li")[0].click();
                else if (n > 0.35 && n <= 0.7) v.getElementsByTagName("li")[1].click();
                else if (n > 0.7 && n <= 0.8) v.getElementsByTagName("li")[2].click();
                else if (n > 0.8 && n <= 0.9) v.getElementsByTagName("li")[3].click();
                else v.getElementsByTagName("li")[4].click();
             else 
                // 其他选项随机概率填写
                let n = Math.random();
                let l = v.getElementsByTagName("li").length;
                v.getElementsByTagName("li")[Math.floor(l * n)].click();
            
        )

        // 滑块验证躲不过,就设置页面自动划到底部,方便手动拖动滑块验证
        let h = document.body.clientHeight;
        window.scroll(
            top: h,
            left: 0,
            behavior: "smooth"
        );

        // 自动点击验证弹窗
        setTimeout(function () 
            $(".mainBgColor").click();
        , 500)
        // 点击提交
        $("#submit_button").click();
        // 点击验证按钮
        setTimeout(function () 
            $("#SM_TXT_1").click();
        , 1000)
    

    // 判断当前页面是否为问卷页面
    function getlocation() 
        let loc = location.href;
        let reg = /vj\\/Ya7H6ad/g;  // 问卷链接正则
        setTimeout(function () 
            if (reg.test(loc)) sub();
            else window.location.href = "https://www.wjx.cn/vg/Ya7H6ad.aspx";  // 问卷链接
        , 900);
    

    getlocation();
)();

多开几个窗一起运行,还蛮快的

以上是关于js自动填写问卷星的主要内容,如果未能解决你的问题,请参考以下文章

python selenium自动化填写问卷星

还在为写调查问卷发愁的你赶快来看看这个自动填写问卷(问卷星版)

SC-MY限定让填写问卷星成为自动化!

python实现问卷星自动填写(可以跳过智能验证)

问卷星问卷开始前能不能设置同意和不同意,点击不同意的话就直接退出?

通过Python实现自动填写调查问卷