zoukankan      html  css  js  c++  java
  • 问卷星全自动刷流量

    之前的代码在其他电脑运行的时候竟然出错,重新修改了下,另外本脚本需要在油猴子脚本上使用,具体使用方法可以参考网上的一些经验,当然我自己也写了一篇文章说下油猴子的下载和使用

    说来也是因为懒就想写个代码帮我刷问卷星的浏览量。

    本来想着自己写一个脚本来着,无奈太懒,在网上找了一个别人写好的代码,但发现网上的代码无法过安检,总是刷新太快。所以呢灵机一动改了改分享给大家

    注:代码一分钟提交一次,不要太快。

    // ==UserScript==
    // @name        问卷星 自动随机填写
    // @namespace   https://github.com/Ahaochan/Tampermonkey
    // @version     0.0.4
    // @description 问卷星 自动随机填写, 目前支持单选题, 多选题, 比重题, 有需要自动填写的题型, 请在反馈或issue提出并附带问卷地址。github:https://github.com/Ahaochan/Tampermonkey,欢迎star和fork。
    // @author      Ahaochan
    // @include     https://www.wjx.cn/[(jq)|(m)|(hj)]/d+.aspx
    // @match       https://www.wjx.cn/*
    // @grant       GM.setValue
    // @grant       GM.getValue
    // @require     https://code.jquery.com/jquery-2.2.4.min.js
    // ==/UserScript==
    
    (function ($) {
        'use strict';
        let A = 0, B = 1, C = 2, D = 3, E = 4, F = 5, G = 6;
        let shuffle = function (array) {
            for (var j, x, i = array.length; i; j = parseInt(Math.random() * i), x = array[--i], array[i] = array[j], array[j] = x) ;
            return array;
        };
        let url = {
            jq: /https://www.wjx.cn/jq/w+.aspx/.test(location.href),
            hj: /https://www.wjx.cn/hj/w+.aspx/.test(location.href),
            m: /https://www.wjx.cn/m/w+.aspx/.test(location.href)
        };
    
        (function (setValue) {
    
        })(GM.setValue);
    
        var $fieldset = $('#fieldset1');
    
        $.extend({
            // 1. 选择题(单选+多选)
            selectQuestion: function (option) {
                var options = $.extend({
                    $fieldset: undefined,   // 表单
                    questionSelector: '',   // 每个问题的selector
                    titleSelector: '',      // 每个问题的标题selector
                    answerSelector: '',     // 每个问题的答案selector
                    isRadio: function ($answers) {
                        return true;
                    },
                    isCheckbox: function ($answers) {
                        return true;
                    }
                }, option);
    
                options.$fieldset.find(options.questionSelector).each(function () {
                    var $this = $(this);
                    var $answers = $this.find(options.answerSelector);
    
                    let fillInput = function (value) {
                        // 1. 单选题自动填写
                        if (options.isRadio($answers)) {
                            // 默认随机填写
                            if(!value) { value = Math.round(Math.random() * ($answers.length - 1)); }
                            $answers.eq(value).click();
                        }
    
                        //答题结束,则打开新的问卷
        (function openNew() {
            var currentURL = window.location.href;
            var pat = /complete.aspx?q=(d+)/;
            var obj = pat.exec(currentURL);
            if (obj) {
                window.location.href = "https://www.wjx.cn/jq/" + obj[1] + ".aspx";
            } else {
                console.log("not pat", obj);
            }
        })();
    
    
        var currentURL = window.location.href;
        //自动转为电脑网页版
        (function redirect() {
            try {
                var pat = /(https://www.wjx.cn/)(jq|m)(.*)/g;
                var obj = pat.exec(currentURL);
                if (obj[2] == "m") {
                    console.log("redirect now");
                    window.location.href = obj[1] + "jq" + obj[3];
                } else {
                    console.log("do!");
                }
            } catch (error) {}
        })();
    
                        // 2. 多选题自动填写, 打乱按钮顺序, 默认随机点击多个答案
                        if (options.isCheckbox($answers)) {
                            // 默认随机点击多个答案
                            if(!value || !value.length) {
                                value = [];
                                $answers = shuffle($answers); // 打乱顺序
                                let num = Math.round(Math.random() * ($answers.length - 1)) || 1;
                                for (let i = 0, len = num; i < len; i++) {
                                    value.push(i);
                                }
                            }
                            $.each(value, (index, item) => $answers.eq(item).click());
                        }
                    };
    
                    // 1. 初始化 是否记住选项的checkbox
                    let $title = $this.find(options.titleSelector), title = $title.text();
    
                    let $remember = $('<input type="checkbox" name="' + title + 'Remember">');
                    $remember.on('change', function () {
                        let checked = $(this).is(':checked');
                        GM.setValue(title+'Remember', pattern);
                    });
    
    
                    $title.append($remember).append('(记住选项)');
    
                    // 2. 恢复上次选中的选项
                    GM.getValue(title+'Remember').then(function (value) {
                        $remember.prop('checked', !!value);
                        fillInput(value);
                    });
                });
            },
            // 2. 比重题
            ratingQuestion: function (option) {
                return;
                var options = $.extend({
                    $fieldset: undefined,   // 表单
                    answerSelector: ''      // 答案的selector
                }, option);
                options.$fieldset.find(options.answerSelector).each(function () {
                    var $this = $(this);
                    var $td = $this.children('td');
                    // 随机点击某一个选项
                    $td.eq(Math.round(Math.random() * ($td.length - 1))).click();
                });
    
    
            },
            // 3. 自动提交
            autoSubmit: function (option) {
                var options = $.extend({
                    enabled: true,     // 默认关闭自动提交
                    autoReopen: true,  // 提交后是否重新打开问卷, 用于刷问卷
                    $button:  $('input.submitbutton')// 提交按钮
                }, option);
    
                // 1. 点击获取验证码
                $('#yucinput').click().focus();
                // 2. 自动提交, 或者滚动到页面底部
                if (options.enabled) {
                    options.$button.click();
                } else {
                    $("html, body").animate({scrollTop: $(document).height()}, 1000);
                }
                // 3. 提交时在新标签页打开问卷
                if (options.autoReopen) {
                    var reopen = function () {
                        window.open(location.href, '_blank');
                        setTimeout(function () {
                            window.close();
                        }, 1000);
                    };
                    $('#yucinput').keypress(function (e) {
                        if (e.which == 13) {
                            reopen();
                        }
                    });
                    options.$button.on('click', reopen);
            
                }
            }
        });
    
    
        (function () {
            let valid = url.jq || url.hj;
            if (!valid) {
                return;
            }
            console.log('匹配jq模式问卷');
            $.selectQuestion({
                $fieldset: $fieldset,
                questionSelector: '.div_question',
                titleSelector: '.div_title_question',
                answerSelector: '.div_table_radio_question .ulradiocheck li',
                isRadio: function ($answers) {
                    return $answers.find('a:first').hasClass('jqRadio');
                },
                isCheckbox: function ($answers) {
                    return $answers.find('a:first').hasClass('jqCheckbox');
                }
            });
            $.ratingQuestion({
                $fieldset: $fieldset,
                answerSelector: 'div.div_table_radio_question tbody tr'
            });
            $.autoSubmit({
                enabled: false,
                autoReopen: false,
                $button: $('input.submitbutton')
            });
        })();
    
        (function openNew() {
            var currentURL = window.location.href;
            var pat = /complete.aspx?q=(d+)/;
            var obj = pat.exec(currentURL);
            if (obj) {
                window.location.href = "https://www.wjx.cn/jq/" + obj[1] + ".aspx";
            } else {
                console.log("not pat", obj);
            }
        })();
    
    
        (function () {
            let valid = url.m;
            if (!valid) {
                return;
            }
            console.log('匹配m模式问卷');
            $.selectQuestion({
                $fieldset: $fieldset,
                questionSelector: '.field',
                titleSelector: '.field-label',
                answerSelector: '.ui-controlgroup div',
                isRadio: function ($answers) {
                    return $answers.hasClass('ui-radio');
                },
                isCheckbox: function ($answers) {
                    return $answers.hasClass('ui-checkbox');
                }
            });
            $.ratingQuestion({
                $fieldset: $fieldset,
                answerSelector: '.matrix-rating tbody tr[tp]'
            });
            $.autoSubmit({
                enabled: false,
                autoReopen: false,
                $button: $('#divSubmit').find('a.button')
            });
        })();
           $(function(){
                  setTimeout(function(){
                      var buy = document.getElementById('submit_button');//给你的a标签加一个id :btnBuy
                      buy.click();
                      document.getElementById("rectMask").click();
    
                  },30000);//后面的3000是以毫秒为单位。
    
              });
    
    
    
    })(jQuery);
  • 相关阅读:
    [解题报告]HDU 1094 A+B for InputOutput Practice (VI)
    [解题报告]HDU 1089 A+B for InputOutput Practice (I)
    [解题报告]HDU 1279 验证角谷猜想
    [解题报告]HDU 1091 A+B for InputOutput Practice (III)
    [解题报告]HDU 2019 数列有序!
    [解题报告]HDU 1201 18岁生日
    [解题报告]HDU 1170 Balloon Comes!
    11使用TensorFlow自定义模型和训练
    12使用TensorFlow加载和预处理数据
    10训练深度神经网络
  • 原文地址:https://www.cnblogs.com/jiufang/p/12855315.html
Copyright © 2011-2022 走看看