位置: IT常识 - 正文

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

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

推荐整理分享python实现问卷星自动填写(可以跳过智能验证)(利用python自动填问卷),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:利用python自动填问卷,python生成问卷数据,python做问卷,python问卷调查系统,python做问卷,python刷问卷星调查问卷,python做问卷,python做问卷,内容如对您有帮助,希望把文章链接给更多的朋友!

最近有一个社会实践需要做问卷调查,突发奇想搞一个自动化脚本,省事省米

1 下载依赖selenium

selenium是一款网页爬虫重要的工具。

2  安装chrome驱动

这里需要准备chrome浏览器以及对应的驱动。需要注意的是驱动的版本需要和chrome保持一致。 chrome浏览器版自行查看本机安装版本。

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

chrome驱动下载链接 chrome驱动链接找到对应版本的驱动。 

 

下载后将安装包解压(解压后为.exe文件)在这个文件夹下 

 

  3 导入相关的包from selenium import webdriverimport timeimport randomfrom selenium.webdriver.common.by import Byimport pyautogui防止被识别为脚本option = webdriver.ChromeOptions() option.add_experimental_option('excludeSwitches', ['enable-automation']) option.add_experimental_option('useAutomationExtension', False) browser = webdriver.Chrome(options=option) browser.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'}) browser.maximize_window() # 窗口最大化 # 这行代码的作用是将webdriver这个属性置为undefined browser.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})' }) browser.get(url) time.sleep(2)  代码如下# -*- coding: utf-8 -*-# @Time : 2023/1/26 11:34 # @Author : wkk# @File : Python自动化填问卷星.pyfrom selenium import webdriverimport timeimport randomfrom selenium.webdriver.common.by import Byimport pyautoguidef run(num, url): for i in range(num): option = webdriver.ChromeOptions() option.add_experimental_option('excludeSwitches', ['enable-automation']) option.add_experimental_option('useAutomationExtension', False) browser = webdriver.Chrome(options=option) browser.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'}) browser.maximize_window() # 窗口最大化 # 这行代码的作用是将webdriver这个属性置为undefined browser.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})' }) browser.get(url) time.sleep(2) num1 = random.randint(1, 2) if browser.find_element(by=By.XPATH, value=f"//div[@for='q1_{num1}']"): browser.find_element(by=By.XPATH, value=f"//div[@for='q1_{num1}']").click() time.sleep(0.5) num2 = random.randint(1, 3) if browser.find_element(by=By.XPATH, value=f"//div[@for='q2_{num2}']"): browser.find_element(by=By.XPATH, value=f"//div[@for='q2_{num2}']").click() time.sleep(0.5) num3 = random.randint(1, 3) if browser.find_element(by=By.XPATH, value=f"//div[@for='q3_{num3}']"): browser.find_element(by=By.XPATH, value=f"//div[@for='q3_{num3}']").click() time.sleep(0.5) num4 = random.randint(1, 3) if browser.find_element(by=By.XPATH, value=f"//div[@for='q4_{num4}']"): browser.find_element(by=By.XPATH, value=f"//div[@for='q4_{num4}']").click() time.sleep(0.5) num5 = random.randint(1, 2) if browser.find_element(by=By.XPATH, value=f"//div[@for='q5_{num5}']"): browser.find_element(by=By.XPATH, value=f"//div[@for='q5_{num5}']").click() time.sleep(0.5) num6 = random.randint(1, 3) if browser.find_element(by=By.XPATH, value=f"//div[@for='q6_{num6}']"): browser.find_element(by=By.XPATH, value=f"//div[@for='q6_{num6}']").click() time.sleep(0.5) num7 = random.randint(1, 4) if browser.find_element(by=By.XPATH, value=f"//div[@for='q7_{num7}']"): browser.find_element(by=By.XPATH, value=f"//div[@for='q7_{num7}']").click() time.sleep(0.5) # num8 = random.randint(1, 3) # if browser.find_element(by=By.XPATH, value=f"//div[@for='q8_{num8}']"): # browser.find_element(by=By.XPATH, value=f"//div[@for='q8_{num8}']").click() # time.sleep(0.5) # 问题5 randomId = random.randint(1, 3) # 随机数选择(选多少个) for i in range(1, randomId + 1): # 循环 实现多选效果 randomId1 = random.randint(1, 3) # 随机选择第1到第6个选项之一 # 两种js实现方式 js = "document.getElementById(\"q8_" + str(randomId1) + "\").checked = true" browser.execute_script(js) # 延时 time.sleep(1) num9 = random.randint(1, 7) if browser.find_element(by=By.XPATH, value=f"//div[@for='q9_{num9}']"): browser.find_element(by=By.XPATH, value=f"//div[@for='q9_{num9}']").click() time.sleep(0.5) num10 = random.randint(1, 3) if browser.find_element(by=By.XPATH, value=f"//div[@for='q10_{num10}']"): browser.find_element(by=By.XPATH, value=f"//div[@for='q10_{num10}']").click() time.sleep(0.5) if browser.find_element(by=By.XPATH, value="//div[@class='submitbtn mainBgColor']"): browser.find_element(by=By.XPATH, value="//div[@class='submitbtn mainBgColor']").click() time.sleep(1) try: element = browser.find_element(By.CSS_SELECTOR, "#alert_box > div:nth-child(2) > div:nth-child(2) > button") element.click() time.sleep(1) yanz = browser.find_element(By.ID, "rectMask") yanz.click() time.sleep(4) except: pass # 先点确认 try: browser.find_element(By.XPATH, '//*[@id="layui-layer1"]/div[3]/a[1]').click() time.sleep(1) except: pass # 再点智能验证提示框,进行智能验证 try: browser.find_element(By.XPATH, '//*[@id="SM_BTN_WRAPPER_1"]').click() time.sleep(3) except: pass # 滑块验证 pyautogui.moveTo(789, 805, duration=1) # 传入屏幕的位置 time.sleep(0.5) pyautogui.dragRel(370, 0, duration=0.8) # 拖动 # pyautogui.moveTo(789, 805, duration=1) # 回到原处 # pyautogui.moveRel(370, 0, duration=1) # pyautogui.dragRel(256, 0, duration=0.8) # pyautogui.moveTo(789, 805) # time.sleep(0.5) # pyautogui.dragRel(370, 0, duration=0.8) time.sleep(5) browser.close() print(f"第{i + 1}份已经完成")if __name__ == '__main__': num = 10 # 填的份数 url = 'https://www.wjx.cn/vm/tXQkrbD.aspx' # 链接 run(num, url)

以上代码是我根据我自己的问卷形式来的,具体参数还得跟着问卷走,代码亲测有效,当短时间内刷的问卷数过多时,可能会出现第二重智能验证,这就要手动验证了哦,所以为了防止出现二重智能验证,在每提交完一份问卷后,要用time.sleep函数用于延时 , 避免提交过快。

本文仅为技术交流,最好不要用来恶意填写别人的问卷,以造成问卷质量低下的情况,请大家还是根据自己的实际情况填写问卷哦。 

本文链接地址:https://www.jiuchutong.com/zhishi/292936.html 转载请保留说明!

上一篇:冰岛羊 (© John Porter LRPS/Alamy)

下一篇:iframe简单使用 、获取iframe 、获取iframe 元素值 、iframe获取父页面的信息(iframe写法)

  • 微信邀请进群怎么设置需要本人同意(微信邀请进群怎么不显示入群消息)

    微信邀请进群怎么设置需要本人同意(微信邀请进群怎么不显示入群消息)

  • 华为手机两张截图如何并列放在一起(华为手机两张截屏图怎样才能拼在一起)

    华为手机两张截图如何并列放在一起(华为手机两张截屏图怎样才能拼在一起)

  • 安卓手机如何恢复聊天记录(安卓手机如何恢复删除的软件)

    安卓手机如何恢复聊天记录(安卓手机如何恢复删除的软件)

  • 开启数据漫游是什么意思(开启数据漫游会提高网速吗)

    开启数据漫游是什么意思(开启数据漫游会提高网速吗)

  • qq密码输错几次会锁住(qq密码输错几次会锁死)

    qq密码输错几次会锁住(qq密码输错几次会锁死)

  • 苹果手机看抖音发烫(苹果手机看抖音模糊是什么原因)

    苹果手机看抖音发烫(苹果手机看抖音模糊是什么原因)

  • 怎样删除耗电记录(怎样删除耗电记录的软件)

    怎样删除耗电记录(怎样删除耗电记录的软件)

  • 华为手机拍照闪光灯怎么设置(华为手机拍照闪光怎么关)

    华为手机拍照闪光灯怎么设置(华为手机拍照闪光怎么关)

  • 苹果13.5什么时候更新(苹果13.3.1什么时候正式上市)

    苹果13.5什么时候更新(苹果13.3.1什么时候正式上市)

  • 抖音直播没人看怎么办(为什么我抖音直播没人看)

    抖音直播没人看怎么办(为什么我抖音直播没人看)

  • 美团的学生认证在哪里(美团的学生认证有必要吗)

    美团的学生认证在哪里(美团的学生认证有必要吗)

  • 微信会话记录删除了还能恢复吗(微信删除的会话记录怎么恢复)

    微信会话记录删除了还能恢复吗(微信删除的会话记录怎么恢复)

  • 红米k20pro有无线充电吗(红米手机k20pro)

    红米k20pro有无线充电吗(红米手机k20pro)

  • 华为手机照相闪光灯怎么开(华为手机照相闪光灯怎么设置)

    华为手机照相闪光灯怎么开(华为手机照相闪光灯怎么设置)

  • 如何修改word文档名称(如何修改word文件大小)

    如何修改word文档名称(如何修改word文件大小)

  • 苹果x盒子里配了什么(iphonex盒子标配)

    苹果x盒子里配了什么(iphonex盒子标配)

  • 卡西欧反显什么意思(卡西欧反显能改正显吗)

    卡西欧反显什么意思(卡西欧反显能改正显吗)

  • 苹果手机怎么进入云相册(苹果手机怎么进入dfu模式)

    苹果手机怎么进入云相册(苹果手机怎么进入dfu模式)

  • 小度怎么设置对话(小度怎么设置对话智能程度)

    小度怎么设置对话(小度怎么设置对话智能程度)

  • 下载的软件怎么卸载不了了(下载的软件怎么找回)

    下载的软件怎么卸载不了了(下载的软件怎么找回)

  • 苹果x和xr钢化膜通用吗(苹果x和苹果xr钢化膜一样吗)

    苹果x和xr钢化膜通用吗(苹果x和苹果xr钢化膜一样吗)

  • 新版Edge浏览器开启“零拷贝光栅器”功能(新版edge浏览器兼容性视图怎么设置)

    新版Edge浏览器开启“零拷贝光栅器”功能(新版edge浏览器兼容性视图怎么设置)

  • Django--基于Python的Web应用框架(django pycharm)

    Django--基于Python的Web应用框架(django pycharm)

  • 本地部署element-plus文档(本地部署gpt4)

    本地部署element-plus文档(本地部署gpt4)

  • 先包装后销售
  • 税控盘抄报逾期怎么办
  • 房产赠与税什么时候开始的
  • 摊销无形资产商标权计入什么科目
  • 领用库存商品用于固定资产
  • 记账凭证填错了怎么改
  • 其他债权投资是资产还是负债
  • 连锁店每个店都要独立核算吗
  • 查账征收的个体户怎么报税
  • 银行存款的会计处理方法
  • 广告公司好进吗
  • 电费做其他业务收入的账务处理怎么做?
  • 分公司往子公司投资如何做税务处理?
  • 增值税留抵的原因
  • 提前退休取得的一次性补贴收入
  • 即征即退增值税需要缴纳所得税吗
  • 劳动保护费在企业怎么交
  • 在杂志上发表论文
  • 增值税普通发票可以抵扣吗
  • 附加税城建税税率
  • 成本核算的原则和要求
  • 如何检查文档
  • 销售返点的账务怎么处理
  • 购进农产品发生非正常损失
  • 审核凭证要注意哪些问题
  • 电脑上fci是什么文件
  • 工程完工后有质量问题能解除合同吗
  • 运输企业成本核算内容有哪些?
  • 增值税检查调整科目还在用吗
  • 软件和集成电路杂志官网
  • 俄勒冈州地理之歌
  • three.js入门指南
  • 新政府会计制度固定资产核算
  • 房地产预缴所得税计算公式
  • springcloud阿里巴巴
  • vue使用计算属性声明在什么配置项中
  • 使用ajax实现页面分页
  • 企业所得税的调增调减怎么理解
  • 帝国cms手机端点击加载不动怎么弄
  • php采集器
  • css设置英文词距
  • 中药资源与开发跨专业考研
  • 印花税申报完成如何缴纳
  • 银行日记账跨月登记方法
  • 发票报送日志不完整
  • 超市小规模税负怎么算
  • 库存商品怎么结转收入
  • 计提工会经费会计凭证怎么做分录
  • 因质量问题免费退货
  • 以前年度损益调整在利润表中怎么填
  • 商贸公司经营范围可以写烟酒吗
  • 离线发票累计金额为0
  • 分公司非独立核算企业所得税税率
  • 出口退税包括
  • 装修费用税法规定有哪些
  • 母公司给子公司担保
  • 企业未分配利润包括哪些
  • win7旗舰版系统恢复
  • mac购买建议
  • win7系统笔记本怎么连接wifi
  • java.exe是指
  • linux mkdir函数创建多级目录
  • Win10系统安装步骤
  • python条件语句的基本结构
  • js实现计算器代码
  • 同一内容复制到多个单元格
  • vue router使用query和params传参的使用和区别
  • 用javascript
  • 搭建maven开发环境
  • unity入门教学
  • activity跳转闪退
  • python随机发红包代码
  • python遍历文本的每条数据
  • 安卓全局替换
  • python作用域和优先级
  • 安卓art set
  • javascript面向
  • jquery中用onclick绑定点击事件
  • 关于个体户的个人所得税的最新政策法规
  • 全款房契税退税需要什么资料
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设