最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+Selenium實現(xiàn)自動填寫問卷

 更新時間:2023年07月19日 09:33:38   作者:DaenCode  
本文主要介紹了Python+Selenium實現(xiàn)自動填寫問卷,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

??效果預覽

??環(huán)境準備

selenium、payautogui安裝

  • Selenium:用于自動化web應用程序測試。它提供了一組API和庫,使開發(fā)人員能夠以編程方式控制瀏覽器并執(zhí)行各種操作,如模擬用戶的點擊、輸入文本、獲取元素屬性、處理JavaScript彈窗等。Selenium最初是為瀏覽器自動化測試而設(shè)計的,但在實際應用中,它也可以用于數(shù)據(jù)挖掘、網(wǎng)頁抓取和自動化任務等其他方面。
  • PyAutoGUI:用于自動化鼠標和鍵盤操作的Python庫。它提供了一組功能豐富的API,可以模擬用戶在屏幕上的鼠標移動、點擊、滾動以及鍵盤按鍵的操作。PyAutoGUI可以幫助開發(fā)人員實現(xiàn)各種自動化任務,如自動化測試、屏幕錄制、圖像識別等。
pip install selenium
pip install pyautogui

WebDriver谷歌瀏覽器驅(qū)動安裝

驅(qū)動下載地址:webdriver

注意找到本地瀏覽器對應的版本

??具體代碼

以下代碼是單元題、矩陣多選題的代碼,包含具體的代碼注釋。如果想修改成適用于個人問卷的代碼,可參照定位元素方法的章節(jié)

# 引入相關(guān)模塊
from selenium.webdriver.common.by import By
from selenium import webdriver
#隨機數(shù)產(chǎn)生
import random 
#延時
import time
# 模擬人手,進行頁面滾動
import pyautogui
####方法:題干————》選項####
#滾動方法,scroPx為滾動距離
def scrop(driver,scroPx):
  #滾動腳本
  js = "var q=document.documentElement.scrollTop=" + str(scroPx)
  #腳本執(zhí)行
  driver.execute_script(js)
  #延時
  time.sleep(1)
#單選題
def single(driver):
  #頁面中有10個單選題
  for j in range(1,11):
    #每個單選題所在的位置
    sinPro = driver.find_elements_by_css_selector(f'#div{j} > div.ui-controlgroup.column1')
    #每個單選題的答案進行遍歷
    for answer in sinPro:
      #對應每個單選題的選項組合
      ansItem= answer.find_elements_by_css_selector('.ui-radio') 
      #隨機點擊選項
      random.choice(ansItem).click()
      #答題時間間隔
      time.sleep(random.randint(0,1))
#矩陣選擇題,一個題
def juzhen(driver):
    #矩陣行數(shù)
    for i in range(1,6):
        #矩陣列數(shù),
        index = random.randint(2, 6)
        #對應的每一個選項
        dan = driver.find_element_by_xpath(f"http://tr[@id='drv8_{i}']/td[{index}]/a")
        #選擇
        dan.click()
        time.sleep(random.randint(0, 1))
#腳本執(zhí)行方法
def launch(nums):
    for i in range(0, nums):
        # 初始配置,問卷星地址
        url_survey = 'https://www.wjx.cn/vm/wY1vxPu.aspx'
        option = webdriver.ChromeOptions()
        option.add_experimental_option('excludeSwitches', ['enable-automation'])
        option.add_experimental_option('useAutomationExtension', False)
        # 本地下載的谷歌瀏覽器地址
        option.binary_location = r'C:\Program Files\Google\Chrome\Application\chrome.exe'
        # 下載好的Chrome驅(qū)動的地址
        driver = webdriver.Chrome(r"D:\chromedriver_win32\chromedriver.exe", options=option)
        driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument',
                               {'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'})
        # 啟動要填寫的地址
        driver.get(url_survey)
        #調(diào)用單選題方法
        single(driver)
        time.sleep(random.randint(0, 1))
        #涉及到多個矩陣題執(zhí)行方法
        for k in range(4):
            method_name = f'juzhen{k}'
            method = globals()[method_name]
            method(driver)
        #調(diào)用滾動屏幕方法
        scrop(driver, 600) 
        #提交按鈕
        driver.find_element_by_css_selector('#ctlNext').click()  # 找到提交的css并點擊
        time.sleep(4)
        print('已經(jīng)提交了{}次問卷'.format(int(i) + int(1)))
        time.sleep(4)
        driver.quit()#停止
  if __name__ == "__main__":
    #填寫問卷次數(shù)
    launch(5)

??Selenium常用API

方法描述
find_element_by_id('element_id')通過元素的id屬性查找元素
find_element_by_name('element_name')通過元素的name屬性查找元素
find_element_by_class_name('class')通過元素的class屬性查找元素
find_element_by_tag_name('tag')通過元素的標簽名查找元素
find_element_by_link_text('text')通過鏈接文本查找超鏈接元素
find_element_by_partial_link_text('text')通過部分鏈接文本查找超鏈接元素
find_element_by_xpath('xpath_expression')通過XPath表達式查找元素
find_element_by_css_selector('css_selector')通過CSS選擇器查找元素
click()點擊元素
send_keys('text')向元素發(fā)送文本內(nèi)容
clear()清空元素的內(nèi)容
get('url')打開指定的URL
current_url獲取當前頁面的URL
title獲取當前頁面的標題
back()返回上一個瀏覽的頁面
forward()前進到下一個瀏覽的頁面
refresh()刷新當前頁面
switch_to.frame('frame')切換到指定的iframe
switch_to.default_content()切換到默認的frame
switch_to.alert處理 JavaScript 彈窗
execute_script('script')在當前頁面執(zhí)行 JavaScript 代碼

??如何定位元素

打開開發(fā)者工具,找到選項位置的具體代碼,之后右擊鼠標進行元素定位,點擊copy復制到自己代碼中即可。

??寫在最后

到此這篇關(guān)于Python+Selenium實現(xiàn)自動填寫問卷的文章就介紹到這了,更多相關(guān)Python Selenium自動填寫問卷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • tensorflow安裝成功import tensorflow 出現(xiàn)問題

    tensorflow安裝成功import tensorflow 出現(xiàn)問題

    這篇文章主要介紹了tensorflow安裝成功import tensorflow 出現(xiàn)問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • 用python 實現(xiàn)在不確定行數(shù)情況下多行輸入方法

    用python 實現(xiàn)在不確定行數(shù)情況下多行輸入方法

    今天小編就為大家分享一篇用python 實現(xiàn)在不確定行數(shù)情況下多行輸入方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 使用Python和Pillow庫開發(fā)圖片轉(zhuǎn)GIF工具的完整流程

    使用Python和Pillow庫開發(fā)圖片轉(zhuǎn)GIF工具的完整流程

    這篇文章主要介紹了使用 Python 和 Pillow 庫開發(fā)圖片轉(zhuǎn) GIF 工具的完整流程,工具支持多格式圖片輸入、自定義幀率、統(tǒng)一圖片尺寸及設(shè)置循環(huán)次數(shù)等核心功能,采用命令行參數(shù)解析實現(xiàn)便捷操作,需要的朋友可以參考下
    2025-10-10
  • 詳解C++編程中一元運算符的重載

    詳解C++編程中一元運算符的重載

    這篇文章主要介紹了C++編程中一元運算符的重載,特別對遞增和遞減運算符重載作了著重講解,需要的朋友可以參考下
    2016-01-01
  • python xlsxwriter庫生成圖表的應用示例

    python xlsxwriter庫生成圖表的應用示例

    這篇文章主要介紹了python xlsxwriter庫生成圖表的應用示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • python實現(xiàn)粒子群算法

    python實現(xiàn)粒子群算法

    這篇文章主要介紹了python如何實現(xiàn)粒子群算法,幫助大家更好的進行機器學習,感興趣的朋友可以了解下
    2020-10-10
  • python中itertools模塊zip_longest函數(shù)詳解

    python中itertools模塊zip_longest函數(shù)詳解

    itertools模塊包含創(chuàng)建高效迭代器的函數(shù),這些函數(shù)的返回值不是list,而是iterator(可迭代對象),可以用各種方式對數(shù)據(jù)執(zhí)行循環(huán)操作,今天我們來詳細探討下zip_longest函數(shù)
    2018-06-06
  • keras多顯卡訓練方式

    keras多顯卡訓練方式

    這篇文章主要介紹了keras多顯卡訓練方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python?中pass和match使用方法

    python?中pass和match使用方法

    這篇文章主要介紹了python中pass和match使用方法,?pass???語句不執(zhí)行任何操作。語法上需要一個語句,但程序不實際執(zhí)行任何動作時,可以使用該語句
    2022-08-08
  • Python?類和對象詳細介紹

    Python?類和對象詳細介紹

    這篇文章主要介紹了Python?類和對象詳細介紹,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-06-06

最新評論

芮城县| 平原县| 天门市| 忻城县| 本溪市| 全州县| 准格尔旗| 彩票| 都匀市| 屏南县| 筠连县| 嘉义县| 文成县| 钦州市| 和硕县| 朝阳市| 丹阳市| 五大连池市| 双桥区| 内江市| 拉萨市| 岢岚县| 伊宁市| 武隆县| 济源市| 尼木县| 子洲县| 息烽县| 如东县| 秀山| 施秉县| 云浮市| 镇江市| 依安县| 麻江县| 江阴市| 纳雍县| 吕梁市| 赤壁市| 沙雅县| 阜南县|