python实现问卷网的自动填写详解

您所在的位置:网站首页 selenium自动答题选择 python实现问卷网的自动填写详解

python实现问卷网的自动填写详解

2023-09-10 13:22| 来源: 网络整理| 查看: 265

@python 实现问卷自动填写(用于刷数据)

python实现问卷网的自动填写详解

注:为保证问卷结果的真实性和质量,如果不是特殊需要,建议不要使用特殊方法刷数据

环境 语言 :python;浏览器:Google Chrome问卷来源:问卷网 前期准备 1.首先针对谷歌浏览器

在windows下配置chromedriver

具体原因可以参考文章后的链接,这里只是说一下简单的步骤 1.打开谷歌浏览器查看版本 在这里插入图片描述 2.下载对应版本的chromedriver 下载地址 我的版本 在这里插入图片描述 3.解压 这里有两种方法 方法一是解压到python的scripts文件夹下(比较建议,因为我就是用的这种方法) 方法二是解压到任意位置 4.测试 完成以上三个步骤后

#解压方法用法一的测试程序 from selenium import webdriver #没有selenium库的 需要装一个 driver=webdriver.Chrome() #法二测试程序 from selenium import webdriver #没有selenium库的 需要装一个 driver=webdriver.Chrome(executable_path=r"你的driver路径")

成功后 运行会打开谷歌浏览器并出现在这里插入图片描述

python代码部分 from selenium import webdriver import random #用于产生随机数 import time #用于延时 #准备工作 option = webdriver.ChromeOptions() option.add_argument('headless') url = 'https://www.wenjuan.com/s/UZBZJvpi6w/' #此处为你要填写的问卷网 问卷的地址 num = 200 # 设置提交问卷次数 #主要程序 for times in range(num): #打开网页 driver = webdriver.Chrome() #此处使用chromedriver解压在python的scripts文件夹下的方法 driver.get(url)#获取问卷信息 questions = driver.find_elements_by_css_selector('.matrix') #便利每个问题 index为(从0开始) 题目序号 第一题index=0 for index,answers in enumerate(questions): # 所有问卷问题选项 answer = answers.find_elements_by_css_selector('.icheckbox_div') # 填空选项,并填入相关内容 if not answer: blank_potion = answers.find_element_by_css_selector('.blank.option') blank_potion.send_keys('无') #此处 “无” 为填写信息 continue #根据问卷的题目规定和预期结果 例如:1,2,4,5,6,7,8 为单选 # 单选题处理 if index == 0 or index == 7 : choose_ans = answer[random.randint(0, 2)] #在前三个选项中随机选择一个 choose_ans.click() #相当于点击事件 time.sleep(random.randint(0, 1)) #随机一个延时 以免操作过快 影响问卷的质量 elif index==3: choose_ans = answer[random.randint(0, 3)] choose_ans.click() time.sleep(random.randint(0, 1)) elif index == 5 or index == 6 : choose_ans = answer[random.randint(0, 2)] choose_ans.click() time.sleep(random.randint(0, 1)) elif index == 1 : choose_ans = answer[random.randint(0, 3)] choose_ans.click() time.sleep(random.randint(0, 1)) elif index == 4 : choose_ans = answer[random.randint(0, 2)] choose_ans.click() time.sleep(random.randint(0, 1)) # 多选题处理 #四选二模式 该思想可用于互斥项 elif index ==2: choose_ans = answer[random.randint(0, 1)]#前两个里面选一个 choose_ans.click() time.sleep(random.randint(0, 1)) choose_ans = answer[random.randint(2, 3)]#后两个里选一个 可随机应变 choose_ans.click() time.sleep(random.randint(0, 1)) #随机多选 存在缺陷 elif index ==9: for i in range(1, random.randint(3, 4)): #随机选则两个或三个 或一个! choose_ans = answer[random.randint(0, 3)] choose_ans.click() time.sleep(random.randint(0, 1)) #分析 当随机选择三个时,有可能三个选项随机数中有两个相同 #这时相当于点击两次 没有做选则 所以结果只剩一个 #同理 当随机选则两个时,可能存在不做选择的情况 若为必填题 则不能提交 #改进 仍有不足 不会出现偶数个选择项 elif index == 8: for i in range(1,8): choose_ans = answer[random.randint(0, 6)] choose_ans.click() time.sleep(random.randint(0, 1)) #同上理 此时选项个数为 1或3或5或7 subumit_button = driver.find_element_by_css_selector('#next_button') #获取提交按钮 #每个问卷网的提交按钮的获取不同 该方法为 问卷网 问卷提交按钮获取方法 subumit_button.click() #点击提交事件 print('已经为您提交了{}次问卷'.format(int(times) + int(1))) time.sleep(4) # 延迟问卷结果提交时间,以免间隔时间太短而无法提交 driver.quit()# 退出 关闭网页 总结

本文讲解用python进行对问卷网问卷的自动填写的具体操作步骤

PS:

问卷星有智能识别比较麻烦 chromedriver的配置有问题的话,这里提供一个参考链接 链接



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3