python自动填写问卷星

多种课程需要问卷,奈何本人朋友少。幸好最近刚学了python,便试着做了一下自动填问卷。现只做出了仅限于全是单选题的问卷(当时时间紧任务重,便没有尝试做多选题)废话不多说,直接上代码:

from selenium import webdriver
import time
from numpy import *
#获得问卷问题并调用selecta()方法进行自动选择
def getasknum(driver):
    asknum=driver.find_elements_by_xpath("//div[contains(@id,'divquestion')]")
    for i in range(len(asknum)):
        selecta(i)
#基于问题选项个数获得一个随机数
def getsjs(number):
    number+=1
    renum=random.randint(1,number)
    return renum
def selecta(num):
    num+=1
    arel="//a[contains(@rel,"+"'q"+str(num)+"_"+"')]"
    anum=driver.find_elements_by_xpath(arel)
    #调用getsjs()方法并模拟点击选择这个选项
    selectnum=getsjs(len(anum))
    aselrel="//a[contains(@rel,"+"'q"+str(num)+"_"+str(selectnum)+"')]"
    element=driver.find_element_by_xpath(aselrel)
    element.click()
#模拟点击提交按钮
def reg(driver):
    btn_reg=driver.find_element_by_id('submit_button')
    btn_reg.click()
#设置循环填写次数
for i in range(1,3):
    driver=webdriver.Chrome()
    url="https://www.wjx.cn/jq/49231227.aspx";
    driver.get(url)
    getasknum(driver)
    reg(driver)
    driver.close()
    #由于问卷星填写过快会有验证码设置一个等待时间
    time.sleep(10)

在配置环境的时候注意chromedriver的配置。这里给一个参考链接:windows下配置chromedriver
由于操作过频繁问卷星会跳出验证码,自动填写验证码部分还在研究中……为了使做出来的数据更具真实性,可以在选择选项的时候加入正态分布等更具统计学意义的选择,上方代码为完全随机选择。

end

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值