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

  • 让微信营销粉丝破万的七个关键词(微信营销粉丝获取渠道)

    让微信营销粉丝破万的七个关键词(微信营销粉丝获取渠道)

  • 怎么修改wifi密码华为(怎么修改wifi密码)(怎么修改wifi密码192.168.1.1)

    怎么修改wifi密码华为(怎么修改wifi密码)(怎么修改wifi密码192.168.1.1)

  • 集显和独显同时输出

    集显和独显同时输出

  • 滴滴审核失败原因10003(滴滴审核失败原因行驶证正面)

    滴滴审核失败原因10003(滴滴审核失败原因行驶证正面)

  • 快手什么情况账号会封禁(快手什么情况账号被冻结)

    快手什么情况账号会封禁(快手什么情况账号被冻结)

  • 无线网上行线路没有激活什么意思(无线网上行线路没有激活是欠费了吗)

    无线网上行线路没有激活什么意思(无线网上行线路没有激活是欠费了吗)

  • 抖音怎么看关注的人什么时候在线(抖音怎么看关注一个人多久了)

    抖音怎么看关注的人什么时候在线(抖音怎么看关注一个人多久了)

  • 手机流量怎么充(手机流量怎么充不了)

    手机流量怎么充(手机流量怎么充不了)

  • 无线网闪红灯是怎么回事(无线网闪红灯是什么问题)

    无线网闪红灯是怎么回事(无线网闪红灯是什么问题)

  • qq有自动回复功能吗(qq自动回复功能怎么设置)

    qq有自动回复功能吗(qq自动回复功能怎么设置)

  • ipadair3是什么时候出的(ipadair3是哪年出的)

    ipadair3是什么时候出的(ipadair3是哪年出的)

  • 苹果手机无法拍照是什么原因(苹果手机无法拍视频怎么回事)

    苹果手机无法拍照是什么原因(苹果手机无法拍视频怎么回事)

  • 微信里面群主可以删除别人发的信息吗(微信里面群主可以解散吗)

    微信里面群主可以删除别人发的信息吗(微信里面群主可以解散吗)

  • ipad电池一般用几年(ipad电池一般可以用多久)

    ipad电池一般用几年(ipad电池一般可以用多久)

  • 货拉拉拒单率怎么消除(货拉拉拒单率计算公式)

    货拉拉拒单率怎么消除(货拉拉拒单率计算公式)

  • word2010删除回车符(删除word里回车)

    word2010删除回车符(删除word里回车)

  • 华为p30原装数据线多长(华为p30原装数据线图片)

    华为p30原装数据线多长(华为p30原装数据线图片)

  • 快手黄钻怎么提现到卡(快手黄钻怎么提现到微信)

    快手黄钻怎么提现到卡(快手黄钻怎么提现到微信)

  • 闲聊里的收款码在哪里(闲聊的收钱码在哪里)

    闲聊里的收款码在哪里(闲聊的收钱码在哪里)

  • 怎样定位手机位置(怎样定位手机位置信息)

    怎样定位手机位置(怎样定位手机位置信息)

  • oppoa9防水级别(oppoa9x防水等级是多少)

    oppoa9防水级别(oppoa9x防水等级是多少)

  • 游戏app开发流程有哪些(游戏软件开发教程)

    游戏app开发流程有哪些(游戏软件开发教程)

  • exe文件打不开解决方法(.exe文件怎么打不开)

    exe文件打不开解决方法(.exe文件怎么打不开)

  • 在ROS下使用Cartographer的纯定位模式,并实时获取定位位姿数据(ros call)

    在ROS下使用Cartographer的纯定位模式,并实时获取定位位姿数据(ros call)

  • Tensorflow1 搭建Cuda11(tensorflow1 教程)

    Tensorflow1 搭建Cuda11(tensorflow1 教程)

  • 2019年个人所得税要补税怎么办
  • 耕地占用税计入无形资产吗
  • 流转税通俗
  • 个体户开公账户需要什么资料
  • 费用怎么暂估
  • 应收账款已收回但是账面还有余额怎么处理
  • 未计提坏账准备金额在哪个科目
  • 以前年度损益调整属于哪类科目
  • 本期有进项没有销项需要转出增值税吗?
  • 年度所得税汇算清缴表去哪里找
  • 补交社保后的个税怎么交
  • 员工福利费是否计入赔偿
  • 携税宝可以不买吗
  • 集团内部拆借资金
  • 个税少报有什么后果
  • 本期销售额未达起征点请将本期应纳税额
  • 修叉车这个工作怎么样
  • 企业控股情况是指
  • 固定资产清理和固定资产减值准备的区别
  • win10预安装环境
  • 初级证书多长时间可以领取?
  • mcdlc.exe - mcdlc是什么进程文件 有何作用
  • 印花税怎么计提和结转
  • json格式字符串提取值
  • 发票填开有哪些规范性要求
  • php模板源码
  • 如何快速使用验证码
  • phpcurl模拟登录
  • 递延收益会计科目的账务处理
  • mediapipe objectron
  • php查询数据是否存在
  • 借入资金用于生产经营
  • jetbrainsnews
  • phpcms手机端
  • Python运算符的优先级别
  • phpcms v9官网
  • 固定资产清理怎么入账
  • 企业接受的非货币性投资按照 计入实收资本
  • 外经证预缴税款之后剩下的税款交到哪呢
  • 业务招待费可以结转吗
  • 公对公二手车交易税
  • 固定资产折旧的账务处理
  • 特许经营企业的特点
  • 企业哪些情况下需要报税
  • sql server怎么升级版本
  • 公司户和个人户交强险一样吗
  • 汇算清缴职工教育经费
  • 经营活动的现金流量占全部现金流量的比重越大
  • 发票收款人和复核人在哪儿政
  • 交易性金融资产公允价值变动怎么算
  • 搬迁补偿款的会计分录
  • 超市购销和联营哪个好
  • 劳务报酬所得是否含增值税
  • 做个公司网站一般需要多少钱
  • 企业购买国债逆回购怎么操作
  • 上月计提少了怎么办
  • 发票缴销了还能恢复吗
  • 商业折扣和销售折让计入财务费用吗
  • centos rpcbind
  • mysql jdbc
  • Linux系统下Qt的基本安装和配置
  • linux系统查看磁盘io
  • 如何调整windows桌面图标大小
  • windows server 2012 r2关机在哪
  • centos哪个版本最好用2022
  • win10一直重置
  • jquery 使用
  • web页面展示
  • gimp批处理
  • 安卓无法更新软件
  • unity引擎占用内存多少
  • JavaScript函数中,哪个语句可以返回值
  • imagelearning
  • python类属性和类方法
  • android studio常用控件
  • 经营所得个人所得税税率表
  • 电子税务局怎么申报
  • 出口退税账户标识是否怎么选
  • 陕西电子发票开票流程?
  • 国企重组裁员政策解读
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设