位置: 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写法)

  • 华为手环7可以测血压吗(华为手环7可以发微信吗)

    华为手环7可以测血压吗(华为手环7可以发微信吗)

  • 华为超级终端怎么调出来(华为超级终端怎么连接)

    华为超级终端怎么调出来(华为超级终端怎么连接)

  • 红米k30屏幕120hz能调吗(红米k30屏幕什么材质)

    红米k30屏幕120hz能调吗(红米k30屏幕什么材质)

  • 微信上怎么买火车票(微信上怎么买火车学生票)

    微信上怎么买火车票(微信上怎么买火车学生票)

  • 闲鱼卖家发货没有物流信息(闲鱼卖家发货没填单号怎么办)

    闲鱼卖家发货没有物流信息(闲鱼卖家发货没填单号怎么办)

  • 微信群名怎么设置可以不被改动(微信群名怎么设置不能改)

    微信群名怎么设置可以不被改动(微信群名怎么设置不能改)

  • 华为截图手势怎么设置(华为手机截图手势)

    华为截图手势怎么设置(华为手机截图手势)

  • miui开发版切换为稳定版会清除数据吗(miui开发版切换稳定版会清除数据吗)

    miui开发版切换为稳定版会清除数据吗(miui开发版切换稳定版会清除数据吗)

  • 华为nova7可以用4G卡吗(华为nova7可以用44瓦快充吗)

    华为nova7可以用4G卡吗(华为nova7可以用44瓦快充吗)

  • 小爱同学隐藏的黑科技有哪些(小爱同学隐藏的黑科技)

    小爱同学隐藏的黑科技有哪些(小爱同学隐藏的黑科技)

  • server和windows区别(windows server 和win10的区别)

    server和windows区别(windows server 和win10的区别)

  • 为什么无线鼠标插在电脑没反应(为什么无线鼠标总是失灵断断续续)

    为什么无线鼠标插在电脑没反应(为什么无线鼠标总是失灵断断续续)

  • iphone7按指纹屏幕上下抖动(iphone7按指纹没反应)

    iphone7按指纹屏幕上下抖动(iphone7按指纹没反应)

  • 无网络时怎么关闭旁白(关闭wifi没有网络什么原因)

    无网络时怎么关闭旁白(关闭wifi没有网络什么原因)

  • 怎么给视频加片头(怎么给视频加片段)

    怎么给视频加片头(怎么给视频加片段)

  • 怎么安装解压软件(如何安装解压软件)

    怎么安装解压软件(如何安装解压软件)

  • 手机APP闪退是什么原因(手机app闪退是什么原因 怎么解决)

    手机APP闪退是什么原因(手机app闪退是什么原因 怎么解决)

  • iphone怎么加密相册(苹果如何加密手机相册)

    iphone怎么加密相册(苹果如何加密手机相册)

  • 个人如何做好网络安全工作(个人如何做好网络安全)

    个人如何做好网络安全工作(个人如何做好网络安全)

  • 苹果11和xs区别(苹果11和xs区别哪个好)

    苹果11和xs区别(苹果11和xs区别哪个好)

  • 怎样手机网购详细步骤(手机网购操作步骤)

    怎样手机网购详细步骤(手机网购操作步骤)

  • 来电说话声音小怎么办(来电通话声音小)

    来电说话声音小怎么办(来电通话声音小)

  • 抖音短视频制作工具有哪些(怎么抖音短视频制作)

    抖音短视频制作工具有哪些(怎么抖音短视频制作)

  • 芒果tv怎样取消手机绑定 (芒果tv怎样取消自动续费)

    芒果tv怎样取消手机绑定 (芒果tv怎样取消自动续费)

  • 华为交换机恢复出厂设置(华为交换机恢复默认配置命令)

    华为交换机恢复出厂设置(华为交换机恢复默认配置命令)

  • 微软 Win11 Dev 预览版 22478更新发布(附更新内容大全)(windows 11 build 21996.1 dev)

    微软 Win11 Dev 预览版 22478更新发布(附更新内容大全)(windows 11 build 21996.1 dev)

  • 增值税发票综合服务平台错误代码35
  • 投资收益所得税前扣除
  • 利税总额计算公式利润表怎么计算
  • 税会差异产生的原因
  • 中国进口货物完税价格表
  • 个税申报缴费
  • 公司内部人员发言稿
  • 个人与公司交的税怎么算
  • 计提房产税计入哪个科目
  • 发生非正常损失的购进货物不准予抵扣的增值税
  • 培训费没有发票怎么办
  • 进项税额有哪些明细科目
  • 开具增值税专用发票承诺函
  • 营改增后增值税暂行条例实施细则
  • 税控系统技术维护费
  • 顾问费的个税怎么扣
  • 应收账款坏账处理审计
  • 供应商质量问题通知函范文
  • 公司补缴印花税的后果
  • 认筹金客户经常提出哪些问题
  • win11插耳机没声音
  • os线程是什么
  • 收到发票已入账什么意思
  • 零售企业退货分录
  • 小规模纳税人需要缴纳个人所得税吗
  • 莱奇沃思田园城市
  • 税法中实体从旧程序从新什么意思
  • 个人签订借款合同
  • wordpress用什么语言编写
  • 福利费入账要求
  • 图文处理是做什么工作
  • php sleep函数
  • chcp命令
  • 离职员工的个税忘记申报了补申报会被处罚吗
  • 什么是进项税转出成本
  • 帝国cms什么语言
  • 业务招待费汇算清缴怎么填表
  • 收到退回的企业所得税,资产负债表如何填
  • 资本公积和盈余公积是什么意思
  • 企业所得税的亏损弥补怎么算
  • 应付账款的入账时间为
  • 企业缴纳的住房公积金的税率
  • 公司房租发票是法人名字能入账吗安全吗
  • 销项负数发票给谁
  • 收到政府补贴如何做帐
  • 退休人员基本养老金包括哪些
  • 财政补助资金是什么意思
  • 商品的结构
  • 其他应收款余额在借方是什么意思
  • 银行存款支付比例规定
  • 零余额账户银行日记账
  • 退回的银行手续费做什么科目
  • 餐饮企业的内部营销
  • 账面价值,账面净值,账面余额三者的区别
  • 资产减值损失是借增贷减吗
  • mysql中排序
  • win8自启动在哪儿设置
  • win8c盘
  • windowsxp设置语言
  • 微软商店更新错误
  • Android NDK Cocos2dx 3.4 Label中文显示
  • react组件写法
  • 日亚海淘官网
  • jquery ajaxfileupload异步上传插件
  • node.js的使用
  • 搭建nodejs
  • nodejs开发gui
  • shell判断文件是否存在且大小不为0
  • Python中模块和包的区别
  • js原生dialog
  • 浅谈自己对教育的理解
  • python目录文件拼接
  • js添加一个div
  • 广东省电子税务局官网登录入口
  • 公司完税证明去哪里打印
  • 关于抓落实的诗句
  • 税务年报截止日期2022
  • 应税销售额和应纳税额
  • 江苏国税局官网登录
  • 税务筹划和纳税申报哪个更容易学
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设