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

  • 抖音粉丝灯牌名称怎么改(抖音粉丝灯牌名称在哪里更改)

    抖音粉丝灯牌名称怎么改(抖音粉丝灯牌名称在哪里更改)

  • 华为nova6se可以隐藏应用吗(华为nova6se可以用6A充电线吗)

    华为nova6se可以隐藏应用吗(华为nova6se可以用6A充电线吗)

  • 华为p40pro有仿真键盘的吗(高仿p40pro)

    华为p40pro有仿真键盘的吗(高仿p40pro)

  • 苹果怎么设置重复拨打电话(苹果怎么设置重复呼叫一个号码)

    苹果怎么设置重复拨打电话(苹果怎么设置重复呼叫一个号码)

  • 钉钉直播费流量吗(钉钉直播费流量还是视频会议费流量)

    钉钉直播费流量吗(钉钉直播费流量还是视频会议费流量)

  • wifi密码被别人改了怎么办(WIFI密码被别人知道了怎么办)

    wifi密码被别人改了怎么办(WIFI密码被别人知道了怎么办)

  • 打印机冒烟怎么回事儿(打印机冒烟了怎么办)

    打印机冒烟怎么回事儿(打印机冒烟了怎么办)

  • 小米10发热严重怎么办(小米10发热严重怎么回事)

    小米10发热严重怎么办(小米10发热严重怎么回事)

  • 实名制可以开几个微信号(实名制可以开几个微信)

    实名制可以开几个微信号(实名制可以开几个微信)

  • oppoa92s 手机上市时间(oppoa92s手机上市时间)

    oppoa92s 手机上市时间(oppoa92s手机上市时间)

  • 苹果手机店能分期付款吗(苹果手机店能分期吗)

    苹果手机店能分期付款吗(苹果手机店能分期吗)

  • vivoy50怎么录屏(vivoy50手机怎样录视频)

    vivoy50怎么录屏(vivoy50手机怎样录视频)

  • 抖音里的回关是啥意思(抖音里回关是怎么回事)

    抖音里的回关是啥意思(抖音里回关是怎么回事)

  • 微信里的京东老黑屏(微信上的京东)

    微信里的京东老黑屏(微信上的京东)

  • iphone se2支持5g吗(se2可以5g吗)

    iphone se2支持5g吗(se2可以5g吗)

  • 华为mate2064g和128g区别

    华为mate2064g和128g区别

  • 京东id怎么搜索(京东商品id怎么搜商品)

    京东id怎么搜索(京东商品id怎么搜商品)

  • 如何下载视频(如何下载视频素材)

    如何下载视频(如何下载视频素材)

  • xs黑屏转圈是什么问题(xs突然黑屏转圈圈一会又好了)

    xs黑屏转圈是什么问题(xs突然黑屏转圈圈一会又好了)

  • 如何关闭可用wlan提醒(如何关闭可用虚拟键盘)

    如何关闭可用wlan提醒(如何关闭可用虚拟键盘)

  • etc屏幕平时亮着吗(etc屏幕不亮滴滴响)

    etc屏幕平时亮着吗(etc屏幕不亮滴滴响)

  • 安全手机号什么意思(安全手机号是啥)

    安全手机号什么意思(安全手机号是啥)

  • 怎么加密自家wifi密码(怎么加密自家wifi防蹭网)

    怎么加密自家wifi密码(怎么加密自家wifi防蹭网)

  • 小米9如何开启开发者选项(小米9如何开启计步)

    小米9如何开启开发者选项(小米9如何开启计步)

  • 关于 flex 布局时,子元素宽度超出父元素问题及解决方案(问题)(flex布局适用于哪些场景)

    关于 flex 布局时,子元素宽度超出父元素问题及解决方案(问题)(flex布局适用于哪些场景)

  • 手把手教你训练一个VAE生成模型一生成手写数字(你知道怎么训练)

    手把手教你训练一个VAE生成模型一生成手写数字(你知道怎么训练)

  • 企业用于职工的个人住房是否可以不缴纳房产税?
  • 保险佣金个人所得税怎么算
  • 债务重组无形资产的评估费
  • 税务现金流量表怎么填
  • 应收款时间太长怎么处理
  • 汽车购买者
  • 机动车检测公司上班时间
  • 个税计提和发放分录
  • 印花税票吧
  • 土地以租代卖,违法吗
  • 公司购买厂房需要交房产税吗
  • 房贷利息抵个税细则 两套房
  • 应付账款不用付怎么处理
  • 电商返佣平台有风险吗
  • 分配利润和分配股利
  • 收到去年所得税汇算清缴退税账务处理
  • 稿酬所得个人所得税计算方法
  • 增值税已抵扣还能退税吗
  • 广告支持政策
  • 工伤赔付是那个出钱呢
  • 外籍人员探亲签证
  • 采购流程会计分录怎么写
  • 评估的房产如何入账
  • c盘空间变小的原因
  • 应用商店获取无反应
  • 打开我的电脑提示该文件没有与之
  • 季度所得税计算方法
  • Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
  • 购货方收到红字发票要认证吗
  • exedown是什么文件夹
  • 带息应收票据应于收到或开出或承兑时
  • 进口增值税的账务处理
  • 工业厂房修缮工程需要报建吗
  • 应收票据贴现会计分录怎么做
  • mac完全安装windows
  • 以前年度损益调整结转到哪里
  • densenet网络结构详解
  • 企业利息支出怎么算
  • 人力为主的公司名称
  • 如何一次性删除微信账单记录
  • 耕地里埋坟国家有什么规定
  • 会计计入其他业务收入的有哪些
  • 在售楼部帮客户卖房犯法吗
  • dedecms更新
  • 快速显示隐藏单元格
  • 租入的房屋转租是否交房产税
  • 侵权赔偿补偿金如何计算
  • 物业增值服务主要有哪些
  • c语言http请求解析表单内容
  • 存货减值税前可抵扣吗
  • 经营性投资范畴
  • 车辆维修费如何赔偿
  • 餐饮毛利率多少为合理范围
  • 累计带薪缺勤账务怎么处理
  • 融资租入固定资产的改建支出
  • 期间费用怎么区分
  • 收到发票冲红怎么做分录
  • 银行代扣水费分录
  • 无发票临时工劳务费账务处理
  • 小规模季度没超过45万怎么纳税增值税
  • 税收奖励账务处理
  • 工会为员工购买水杯
  • 公司分红怎么做账
  • 会计账簿的登记实训报告
  • linux将文件a.txt更名为b.txt
  • centos 界面安装
  • linux bin和sbin
  • linux的用户
  • 体验Win8灵活分屏贴靠功能图文介绍
  • win8.1无法安装vmware tools
  • win10系统应用更新
  • unity lightmap uv
  • ug输入代码
  • 噩梦 gd
  • Unity Batch 对 Vertex Shader 产生影响
  • jquery 鼠标
  • python框架scrapy
  • 江苏省常州市国事业单位国企招录测绘工程研究生公告
  • 十四五时期税收制度
  • 农转非和非农
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设