偶然发现问卷星的填写不需要身份验证,就萌生了一个念头,就是用脚本自动填写问卷星,以下代码不具有普遍性,因此我没有在油猴脚本上发布,当然稍微改一改还是能用的。
// ==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();
})();
多开几个窗一起运行,还蛮快的