朋友讓幫忙答下問卷星,因嫌麻煩就干脆寫個腳本幫他玩了
我們需要用到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()
由於時間關系,就簡單寫了下,還要許多未完善的,能先用着