Python自动化填写问卷星问卷

本文使用pyhton实现常见的问卷星问卷自动化填写。如果出现智能验证,本文还不能有效绕过问卷星提交时出现的智能检测,还需要手动点击智能检测才能完成问卷的填写。
在网络问卷中,我们常见的问题有单选题、多选题和李克勤量表题,如下图:
单选题:
在这里插入图片描述
多选题:
在这里插入图片描述
李克勤量表题:
在这里插入图片描述
本文就是实现了以上问题的问卷星问卷自动填写功能,大家可以根据自己问卷的需要添加其他问题的自动化填写功能。
本文的半自动化填写问卷程序需要依赖浏览器驱动,笔者使用的是谷歌浏览器,所以需要下载chromedriver,且版本需要和目前自己的浏览器版本匹配运行才不会出错。
查看自己的浏览器版本可以点击设置,在“关于Chrome”中即可看到当前浏览器版本。
在这里插入图片描述
点击chromedriver下载或打开网址:https://npm.taobao.org/mirrors/chromedriver/即可下载对应版本的谷歌浏览器驱动。注意:chromedriver解压后的文件需要放到python项目目录下。
此外,python也需要安装selenium浏览器驱动包。

pip install selenium

本文直接讲解填写问卷的方法,如对selenium不熟悉,可以在B站上找相关的视频或者到selenium官方直接学习官方文档,一般爬虫都会讲解selenium的。

完整代码
1、导入所需的包

import random
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from concurrent.futures import ThreadPoolExecutor

2、selenium基本配置

chrome_options = Options()
chrome_options.add_argument('user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"')  # 添加请求头
# 防止被识别(并不绝对能绕过selenium检测)
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])  
chrome_options.add_argument('--disable-blink-features=AutomationControlled')

3、所要答题的问卷星问卷链接地址

url = 'https://www.wjx.cn/vj/eFcdw4q.aspx'

4、主体答题代码

def answer_question(url):driver = webdriver.Chrome(options=chrome_options)driver.maximize_window()   # 最大化浏览器窗口driver.get(url)time.sleep(1)questions = driver.find_elements_by_class_name('div_question')for question in questions:answers_one = question.find_elements_by_xpath('.//ul/li/a')answers_more_td = question.find_elements_by_xpath('.//table/tbody/tr')answers_many = question.find_elements_by_class_name('jqCheckbox')# 单选题if answers_one != []:try:choose_one = random.choice(answers_one)choose_one.click()except Exception as e:print(e)# 一问题下多问题选择(如五级选题)if answers_more_td != []:for answers_tr in answers_more_td:try:answers_more_ones = answers_tr.find_elements_by_xpath('./td/a')choose_more_one = random.choice(answers_more_ones)choose_more_one.click()except Exception as e:print(e)# 多选题if answers_many != []:most = len(answers_many)choose_manys = set()for i in range(random.randint(1, most + 1)):choose = random.choice(answers_many)choose_manys.add(choose)for choose_many in choose_manys:try:choose_many.click()except Exception as e:print(e)time.sleep(2)submit_button = driver.find_element_by_id('submit_button')  # 找到提交按钮submit_button.click()  # 点击提交time.sleep(random.randint(3, 5))# 智能验证while 'mainBgColor' in driver.page_source:mainBgColor = driver.find_element_by_class_name('mainBgColor')mainBgColor.click()driver.quit()def run():url_list = [url]*10with ThreadPoolExecutor(max_workers=2) as executor:executor.map(answer_question, url_list)time.sleep(1)if __name__ == '__main__':run()

本文使用多线程(2个线程)进行自动化填写问卷,如果有智能检测需要自己手动完成最后的智能验证后才能提交成功哦。当我们的问卷数量不够的时候,我们可以利用现有的问卷算出人们答题的规律,以此作为答题的权重修改程序,改变随机答题规则,这应该是可以避免在问卷的信度效度检验中无法通过的尴尬情况。
本文仅为技术交流,最好不要用来恶意填写别人的问卷,以造成问卷质量低下的情况,请大家还是根据自己的实际情况填写问卷哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/44961.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python自动填写问卷星

python自动填写问卷星 参考链接1 参考链接2 用python实现自动填问卷,通过智能验证以及滑动验证 1. 下载浏览器驱动 python自动化填写问卷需要依赖浏览器驱动,这里使用的是谷歌浏览器,所以需要下载chromedriver,且下载的版本要和浏览器版本…

问卷星问卷数据怎么快速导入SPSSAU?

最近收到小伙伴询问问卷星导入的问卷数据怎么编码? 现在的问卷调查,很多都是通过网络问卷的方式进行,问卷星是一个专业的在线问卷调查、测评投票平台,如果你的问卷正好是在问卷星网站发放,填答,回收数据&am…

python问卷星模拟提交

*一、前言 ** 笔者在家闲得无聊,突然想突破一下问卷星的反爬虫机制,顺便刷刷问卷,于是就开始分析了。 ** 二、分析过程 ** 1、fiddler抓包 模拟提交首先当然是打开fiddler看看提交了什么包啦。 2、分析不变参数 我们先来看不变的参数&…

使用python实现问卷星自动答题功能——基础篇

题主在学习的过程中,老是有人来让填问卷星,就觉得人填的很麻烦,于是就自己动手写了一个python脚本来实现自动填写问卷星 1.首先我们得学会使用python里面的一个库,selenium,这个库是用来专门面对浏览器的一个库&#…

用Python实现问卷星自动填写(超详细!!!)

用Python实现问卷星自动填写(超详细!!!) 前言一、配置环境1.1安装依赖1.2安装驱动 二、实战处理2.1、引入库函数2.2、程序所需函数详解(1)自定义单选函数(2)自定义多选函…

自动填写问卷星并提交

自动填写问卷星并提交 鉴于好多小伙伴要做数据分析的时候发放大量的问卷,但收回来的却寥寥无几,还受到其他小伙伴的冷眼,所以在下决定通过代码的方式,来实现问卷星的自动填写并提交。 以谷歌浏览器为例 1.随便到一个页面&#x…

【python】自动填写问卷星问卷及提交

前言:问卷是很好的网络调查方式之一,近年来,问卷星被广泛应用于各方面的调查。本文介绍了利用python代码自动填写问卷星基本题目,拥有自动填写、解决智能验证、批量提交问卷等功能。 目录 1.下载浏览器驱动 2. selenium基本配置…

利用GoogleTampermonkeyModify Headers实现问卷星调查问卷的自动填写提交

前言 首先一个月没有更新博客,是因为去苏州尝试了一下暑假工,然后对于大家在博客留下的评论和问题也没有来得及回复,实在不好意思。不得不说,暑假工挺累的,而且基本上在消磨时间,说实话也不算后悔&#xf…

Python实现问卷星调查问卷自动填写

文章目录 前言一、配置环境1.1 下载依赖selenium1.2 安装chrome驱动1.3 引入库 二、简易版快速上手教程1.自定义变量2.自定以函数3 主函数编写 三 逐步解析1 基础代码2 实现步骤 四 代码总结 前言 如何使用python实现对问卷的自动填写提交任务并且还能解决智能验证问题。 一、…

Mac 软件出现「意外退出」及「打不开」解决方法

解决方法 方法其实有很多种,这里介绍常用的几种 终端法需先安装Xcode或Apple命令行工具 如未装Xcode可以使用下列命令安装Apple命令行工具(如安装有Xcode可忽略) xcode-select --install 1.终端法 sudo codesign --force --deep --sign -…

postman能正常打开但不显示窗口

1.最近使用postman偶尔出现以下问题 postman在任务栏能正常打开,如下图,使用AltTab也能看到,但是窗口就是显示不了 2.解决方案 将鼠标放在任务栏上,使用快捷键Alt空格,弹出小窗口,然后点击弹框中的最大化…

MPAndroidChart的HorizontalBarChart数值显示不全问题

现在使用的版本是:v3.1.0 方案一: private HorizontalBarChart hor_bar_chart; hor_bar_chart(HorizontalBarChart) findViewById(R.id.hor_barchart); YAxis leftYAxishor_bar_chart.getAxisLeft(); // 设置y轴边距,解决数值过大显示不全问…

解决 echarts 图中 tooltip 文本内容太长导致显示不全

问题: 使用 tooltip 的 extraCssText,高效方便 tooltip: {show:true,trigger: "axis",confine: true, // 文本太长自动换行extraCssText: white-space: normal; word-break: break-all;, // 文本太长自动换行效果:

CoordinatorLayout显示不全问题

问题一 <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"android:layout_width"match_parent"android:layout_height&…

在html中页面不全,网页显示不全,教您网页显示不全怎么办

当我们在电脑系统中使用IE浏览器浏览网页时&#xff0c;偶尔会出现是否只查看安全内容的提示&#xff0c;甚至有可能会出现页面显示不全的情况。一般遇到这种情况会选择继续查看网页内容&#xff0c;怎么去处理&#xff1f;下面&#xff0c;小编给大家介绍网页显示不全的解决步…

CSS问题:导航栏设置通栏后,放大页面背景显示不全

问题描述&#xff1a; 正常显示时&#xff1a;将网页放大到150%后&#xff1a; 解决办法&#xff1a; 当导航栏设置为width:100%或不给宽&#xff0c;是相当于当前文档流而言的&#xff0c;也就是浏览器窗口的大小。 此时假设浏览器窗口大小为1000px&#xff0c;那么这个通栏…

关于小程序 input 组件内容显示不全(显示的长度不满 input 宽度)问题

今天在做表单的提交&#xff0c;其中input框出现了一个诡异的问题&#xff0c;就是内容显示不全&#xff08;显示的长度不满 input 宽度&#xff09;&#xff0c;用前愆訾的文章解决&#xff0c;地址http://www.cnblogs.com/miu-key/p/7168933.html。感谢博主~ 转载自&#xff…

wkwebview html5页面,WKWebView h5 页面显示不全问题

WKWebView h5 页面显示不全问题 首先先来看一下效果图如下所示: 1.png 2.png 图 1 下面的分享按钮只显示出一点, 当时想出现这样的 bug 无外乎两点 1.h5 那边设备兼容问题 2.ios 这边显示问题, 问了 h5, 说是直接加载底部的 CSS 样式, 安卓那边显示 OK, 最后看了 h5 的代码也没…

html玩游戏显示不全,客户端登录界面显示不全解决办法

《新天堂II》客户端登录界面显示不全解决办法 在登录《新天堂II》游戏过程正&#xff0c;如果您出现客户端TCLS 界面显示不完全问题&#xff0c;请按照以下步骤设置&#xff0c;进行解决。 双击游戏图标后&#xff0c;出现登录界面显示不完全&#xff0c;如下图&#xff0c;玩家…