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

Python自动化填写问卷星问卷相关推荐

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

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

  2. Python爬虫拓展应用——Selenium代刷问卷星问卷

    原始版本,升级版请见Selenium代刷问卷星问卷,升级版. 二更(2018年9月19日): 慎重考虑升级版也需要一定开发经验的同学才能自己完成.所以设置了仅vip可见,希望谅解. 感谢大家的光临,受 ...

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

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

  4. python批量填写问卷星问卷

    一.授人以鱼 如果想直接拿代码就用,不想了解具体设计思路,那看本节内容就够了.到文末复制代码,以下是使用教程: 需要在main函数给定3个参数,URL(问卷的链接).answer(问卷答案),num( ...

  5. 问卷星python自动提交_GitHub - Awacky/WJX_Autosubmit: 问卷星问卷自动提交,Python3版本,2020年8月仍有效...

    WJX_Autosubmit 问卷星自动提交,Python3版本,2020年8月仍有效.采用构建随机答案,不支持验证码. 目前github上的可用版本并不多,同时个人接触较多问卷星的问卷,便萌生了用P ...

  6. 问卷星刷问卷python_Python+Selenium自动刷问卷星问卷

    importtimeimportrandomfrom selenium importwebdriverdefautoSelect():#将问卷星网站放在下面 driver.get('https://w ...

  7. Python笔记(六)--Python3实现批量提交问卷星问卷

    大概内容如下: 利用Fiddler抓包,对点击提交所传输的数据包进行分析:(划重点) 爬取免费代理ip网站(例如:西刺代理)发布的IP地址,构建ip地址池: 引用fake_useragent库的Use ...

  8. 问卷星/问卷管理系统的设计与实现,附源码+开发环境【优质毕设】

    文章目录 开发环境 功能模块 部分功能展示 总结.源码获取 开发环境 前后端:Java8 + SpringBoot + Vue 数据库:mysql 功能模块 系统分为管理员.教师.学生三个角色. 管理 ...

  9. 测试问卷星问卷公开的问题

    http://www.sojump.com/jq/1540481.aspx http://www.sojump.com/jq/1540485.aspx 转载于:https://www.cnblogs. ...

  10. python自动化------问卷星刷问卷3.0版本

    接上,之前做的问卷星刷问卷的功能单一,每个题目只能选一个选项.现在的3.0版本功能增加了计数器(刷了几份问卷).多选项的选择.通过滑块验证.想要了解之前的相关信息请看下面的链接: 隔壁寝室刷问卷刷疯了 ...

最新文章

  1. java继承和多态的实验报告_JAVA,继承和多态实验报告
  2. 【PAT乙级】1084 外观数列 (20 分)
  3. C语言实现的FFT与IFFT源代码,不依赖特定平台
  4. 提高篇 第一部分 基础算法 第4章 广搜的优化技巧
  5. Linux Vim基本操作(文件的打开和编辑)完全攻略(有图有真相)
  6. IDEA 调试部署 Web-INF/classes下面不生成class文件
  7. js 变量的声明能提升 初始化不会提升
  8. Ext 学习之 Store
  9. 第一次c语言课程设计——学生选课管理系统
  10. JustView(Office、CAD)在线预览平台调用说明
  11. 申请数据库资源池的三种方式(Map,properties)
  12. Ubuntu安装N卡驱动
  13. Android显示系统详解
  14. FVCOM 环境基础配置(1) intel编译器 下载与安装
  15. 用modprobe 加载模块时,提示模块找不到的问题
  16. C/C++趣味编程经典100例详解
  17. 微信小程序 给数字或文字加横线,比如原价、已完成任务
  18. 计算机培训中心规章制度,某计算机培训中心规章制度.doc
  19. 学生随机点名软件使用教程
  20. 三星Galaxy S21 FE和三星Galaxy S21对比

热门文章

  1. KMP算法—终于全部弄懂了
  2. linux系统下查找应用,Linux系统find查找命令运用
  3. 【报告分享】抖店百宝书-抖音电商(附下载)
  4. C我语言编程老鼠寻路,数据结构课设-走迷宫游戏.doc
  5. PAT A1096
  6. 2017 华为软件精英挑战赛
  7. 计算机组装与维护参考文献,计算机的组装与维护毕业论文.doc
  8. 如何读取或转换PCD点云文件
  9. 项目技术管理经验总结
  10. 简单破解 Sencha Architect 2.2 (ExtJs Designer) - 李路平 - 博客园