Python实现问卷星自动填写和选择

Python实现问卷星自动填写和选择

啊哈哈哈,我朋友叫我帮他填写问卷星,,我就直接写了个python脚本帮他一次性解决
全随机,全自动,一开始我用的是BP直接抓包发送,不过发送频率过快会让你验证,,,
就很恶心,,问卷上一共有十五个问题,其实十四个,有个选择不同会显示不同问题
在书写过程中遇见一个问题,多选框的选中,经历多种摧残,终于找到解决办法:

randomId1 = random.randint(1, 7)
js = "document.getElementById(\"q11_" + str(randomId1) + "\").checked = true"
browser.execute_script(js)
js = "document.getElementById(\"q11_" + str(randomId1) + "\").click()"
browser.execute_script(js)

如上所述即可实现python选中复选框!!!
具体代码如下,没有任何技术可言,仅此记录一下:

from selenium import webdriver
import time
import random

def run():
    browser = webdriver.Chrome()
    browser.get("https://www.wjx.cn/jq/80378706.aspx")

    # 1
    randomId = random.randint(1, 2)
    js = "document.getElementById(\"q1_" + str(randomId) + "\").click()"
    browser.execute_script(js)
    time.sleep(1)

    # 2
    randomId = random.randint(1, 4)
    js = "document.getElementById(\"q2_" + str(randomId) + "\").click()"
    browser.execute_script(js)
    time.sleep(1)

    # 3
    block = ["商学院", "计科院", "电气院"]
    randomId = random.randint(0, 2)
    browser.find_element_by_id("q3").send_keys(block[randomId])
    time.sleep(1)

    # 4
    block = ["会计", "网工", "电气"]
    browser.find_element_by_id("q4").send_keys(block[randomId])
    time.sleep(1)

    # 5
    randomId = random.randint(1, 5)
    for i in range(1, randomId + 1):
        randomId1 = random.randint(1, 5)
        js = "document.getElementById(\"q5_" + str(randomId1) + "\").checked = true"
        browser.execute_script(js)
        js = "document.getElementById(\"q5_" + str(randomId1) + "\").click()"
        browser.execute_script(js)
    time.sleep(1)

    # 6
    randomId = random.randint(1, 3)
    for i in range(1, randomId + 1):
        randomId1 = random.randint(1, 3)
        js = "document.getElementById(\"q6_" + str(randomId1) + "\").checked = true"
        browser.execute_script(js)
        js = "document.getElementById(\"q6_" + str(randomId1) + "\").click()"
        browser.execute_script(js)
    time.sleep(1)

    # 7
    randomId = random.randint(1, 3)
    for i in range(1, randomId + 1):
        randomId1 = random.randint(1, 3)
        js = "document.getElementById(\"q7_" + str(randomId1) + "\").checked = true"
        browser.execute_script(js)
        js = "document.getElementById(\"q7_" + str(randomId1) + "\").click()"
        browser.execute_script(js)
    time.sleep(1)

    # 8
    randomId = random.randint(1, 2)
    js = "document.getElementById(\"q8_" + str(randomId) + "\").click()"
    browser.execute_script(js)
    time.sleep(1)

    # 9
    randomId = random.randint(1, 2)
    js = "document.getElementById(\"q9_" + str(randomId) + "\").click()"
    browser.execute_script(js)
    time.sleep(1)

    # 10
    randomId = random.randint(1, 3)
    js = "document.getElementById(\"q10_" + str(randomId) + "\").click()"
    browser.execute_script(js)
    time.sleep(1)

    # 12
    if randomId == 2:
        randomId2 = random.randint(1, 6)
        for i in range(1, randomId2 + 1):
            randomId1 = random.randint(1, 6)
            js = "document.getElementById(\"q12_" + str(randomId1) + "\").checked = true"
            browser.execute_script(js)
            js = "document.getElementById(\"q12_" + str(randomId1) + "\").click()"
            browser.execute_script(js)
        time.sleep(1)
    # 11
    else:
        randomId2 = random.randint(1, 7)
        for i in range(1, randomId2 + 1):
            randomId1 = random.randint(1, 7)
            js = "document.getElementById(\"q11_" + str(randomId1) + "\").checked = true"
            browser.execute_script(js)
            js = "document.getElementById(\"q11_" + str(randomId1) + "\").click()"
            browser.execute_script(js)
        time.sleep(1)

    # 13
    randomId = random.randint(1, 3)
    js = "document.getElementById(\"q13_" + str(randomId) + "\").click()"
    browser.execute_script(js)
    time.sleep(1)

    # 14
    block = ["线上教学太生硬", "线上教学不太好", "没有不足之处,挺好的"]
    randomId = random.randint(0, 2)
    browser.find_element_by_id("q14").send_keys(block[randomId])
    time.sleep(1)

    # 15
    block = ["希望作业能多一点", "如果可以,希望老师能讲课讲清楚一些", "建议取消线上考试"]
    randomId = random.randint(0, 2)
    browser.find_element_by_id("q15").send_keys(block[randomId])
    time.sleep(1)

    # submit
    js = "document.getElementById(\"submit_button\").click()"
    browser.execute_script(js)

    browser.quit()	#运行完毕自动关闭浏览器

if __name__ == "__main__":
    while True:
        run()
        time.sleep(10)	#避免提交过快出现验证

理论上还是不错的!!大概30s就能填完一个,比一个一个叫人填快多了嘛

猜你喜欢

转载自blog.csdn.net/qq_42967398/article/details/106753945