Python+Selenium自動刷問卷星問卷


朋友讓幫忙答下問卷星,因嫌麻煩就干脆寫個腳本幫他玩了

我們需要用到selenium庫,接下來分析下問卷

 
        

 每個問題ID不同,我們可以通過id來找到每個小問,再來找到詳細標簽

訪問該地址

driver.get('https://www.wenjuan.com/s/IFNFni
訪問該標簽,random.randint讓其隨機選擇任意一選項
xpath3 = '//*[@id="question_5e647ab73631f215eee34179"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 5)

多選類似

 添加for隨機循環幾次執行

填空題

直接傳值進去就行,把值存到一個列表,在隨機存到key_2里

 driver.find_element_by_id("5e647ab73631f215eee341d0").send_keys(key_2)

提交

submit = driver.find_elements_by_id('next_button')[0]
submit.click()

間隔1秒然后退出

time.sleep(1)
driver.quit()

完整代碼如下

 

import time
import random
from selenium import webdriver



def autoSelect():
    # 將問卷星網站放在下面
    driver.get('https://www.wenjuan.com/s/IFNFni')

    key_1 = str(random.randint(1, 4))
    list1 = ['計算機', '會計', '汽修', '幼師', '建築', '工商']
    key_2 = list1[random.randint(0,5)]


    # 單選題,因為和后面的題有邏輯關系,記下隨機值key_1
    xpath1 = '//*[@id="question_5e647ab73631f215eee34177"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % key_1
    answer_1 = driver.find_elements_by_xpath(xpath1)[0]
    answer_1.click()

    # 2
    for i in range(random.randint(2, 5)):
        xpath2 = '//*[@id="question_5e647ab73631f215eee34178"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 6)
        answer_2 = driver.find_elements_by_xpath(xpath2)[0]
        answer_2.click()

    # 3
    xpath3 = '//*[@id="question_5e647ab73631f215eee34179"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 5)
    answer_3 = driver.find_elements_by_xpath(xpath3)[0]
    answer_3.click()

    # 4
    xpath4 = '//*[@id="question_5e647ab73631f215eee3417a"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 5)
    answer_4 = driver.find_elements_by_xpath(xpath4)[0]
    answer_4.click()

    # 5
    xpath5 = '//*[@id="question_5e647ab73631f215eee3417b"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 5)
    answer_5 = driver.find_elements_by_xpath(xpath5)[0]
    answer_5.click()

    # 6
    xpath5 = '//*[@id="question_5e647ab73631f215eee3417c"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 4)
    answer_5 = driver.find_elements_by_xpath(xpath5)[0]
    answer_5.click()

    # 7
    xpath5 = '//*[@id="question_5e647ab73631f215eee3417d"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 6)
    answer_5 = driver.find_elements_by_xpath(xpath5)[0]
    answer_5.click()

    # 8
    xpath5 = '//*[@id="question_5e647ab73631f215eee3417e"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 4)
    answer_5 = driver.find_elements_by_xpath(xpath5)[0]
    answer_5.click()

    # 9
    xpath5 = '//*[@id="question_5e647ab73631f215eee3417f"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 4)
    answer_5 = driver.find_elements_by_xpath(xpath5)[0]
    answer_5.click()

    # 10
    xpath5 = '//*[@id="question_5e647ab73631f215eee34180"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 4)
    answer_5 = driver.find_elements_by_xpath(xpath5)[0]
    answer_5.click()

    # 11
    xpath5 = '//*[@id="question_5e647ab73631f215eee34181"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 5)
    answer_5 = driver.find_elements_by_xpath(xpath5)[0]
    answer_5.click()

    # 12
    xpath5 = '//*[@id="question_5e647ab73631f215eee34182"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 4)
    answer_5 = driver.find_elements_by_xpath(xpath5)[0]
    answer_5.click()

    # 13
    for i in range(1,4):
        xpath5 = '//*[@id="question_5e647ab73631f215eee34183"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 5)
        answer_5 = driver.find_elements_by_xpath(xpath5)[0]
        answer_5.click()

    # 14
    xpath5 = '//*[@id="question_5e647ab73631f215eee34184"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 3)
    answer_5 = driver.find_elements_by_xpath(xpath5)[0]
    answer_5.click()

    # 15
    for i in range(2, 4):
        xpath5 = '//*[@id="question_5e647ab73631f215eee34185"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 4)
        answer_5 = driver.find_elements_by_xpath(xpath5)[0]
    answer_5.click()

    # 16

    driver.find_element_by_id("5e647ab73631f215eee341d0").send_keys(key_2)



    # 17
    xpath5 = '//*[@id="question_5e647ab73631f215eee34187"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 4)
    answer_5 = driver.find_elements_by_xpath(xpath5)[0]
    answer_5.click()

    # 18
    xpath5 = '//*[@id="question_5e647ab73631f215eee34188"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 5)
    answer_5 = driver.find_elements_by_xpath(xpath5)[0]
    answer_5.click()

    # 19
    xpath5 = '//*[@id="question_5e647ab73631f215eee34189"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 2)
    answer_5 = driver.find_elements_by_xpath(xpath5)[0]
    answer_5.click()

    # 20
    for i in range(0, 5):
        xpath5 = '//*[@id="question_5e647ab73631f215eee3418a"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 6)
        answer_5 = driver.find_elements_by_xpath(xpath5)[0]
        answer_5.click()

    # 21
    xpath5 = '//*[@id="question_5e647ab73631f215eee3418b"]/div[2]/div[3]/div[1]/div[%s]/label[1]' % random.randint(1, 3)
    answer_5 = driver.find_elements_by_xpath(xpath5)[0]
    answer_5.click()



    # 提交
    submit = driver.find_elements_by_id('next_button')[0]
    submit.click()

    time.sleep(1)
    driver.quit()

if __name__ == '__main__':
    # 循環4次
    for index in range(1, 5):
        driver = webdriver.Chrome()
        autoSelect()

 

由於時間關系,就簡單寫了下,還要許多未完善的,能先用着

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM