python調(diào)用chrome實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)操作過程
一. 內(nèi)容簡(jiǎn)介
python調(diào)用chrome實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)操作。
二. 軟件環(huán)境
2.1vsCode 2.2Anaconda
version: conda 22.9.0
2.3代碼
鏈接:
三.主要流程
3.1 下載驅(qū)動(dòng)和插件
調(diào)用谷歌瀏覽器,需要下載瀏覽器驅(qū)動(dòng)(https://registry.npmmirror.com/binary.html?path=chromedriver/),下載對(duì)應(yīng)的版本,最新的里面沒有,網(wǎng)上找一下就可以了,谷歌或者csdn,
然后安裝 selenium
! pip install selenium ! pip install pyautogui
安裝成功

3.2 調(diào)用谷歌瀏覽器
這個(gè)驅(qū)動(dòng)沒有路徑,好像也可以運(yùn)行,我只指定了網(wǎng)址,瀏覽的exe路徑,就沒了
# 填寫鏈接
url_survey = 'https://www.wjx.cn/vm/ev6IfcA.aspx'
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_experimental_option('useAutomationExtension', False)
# 谷歌瀏覽器exe位置
options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
# 是否要啟動(dòng)頁(yè)面
# options.add_argument("--headless") # 啟用無(wú)頭模式
# GPU加速有時(shí)候會(huì)出bug
options.add_argument("--disable-gpu") # 禁用GPU加速
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options=options)
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument',
{'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'})
# 啟動(dòng)要填寫的地址,這就啟動(dòng)瀏覽器
driver.get(url_survey)
# 這是關(guān)閉瀏覽器
driver.quit()#停止啟動(dòng)成功

3.3 進(jìn)行網(wǎng)頁(yè)操作
需要注意的就是,然后就是按自己的需求寫就好了,有啥其他用到的,以后再補(bǔ)充,現(xiàn)在就用到這一個(gè)
# 兩個(gè)功能一致,使用這個(gè)代碼找到對(duì)應(yīng)的代碼,click()即可,和js基本類似,只是部分語(yǔ)法不一樣
# python里面的寫
sinPro = driver.find_elements(By.CSS_SELECTOR, f'.jqradio')
# js里面的
document.querySelectorAll(".jqradio")# 引入相關(guān)模塊
from selenium.webdriver.common.by import By
from selenium import webdriver
#隨機(jī)數(shù)產(chǎn)生
import random
#延時(shí)
import time
import pyautogui
#單選題
def single(driver):
# 假設(shè)有10個(gè)單選題
for j in range(1, 18):
# 每個(gè)單選題所在的位置
sinPro = driver.find_elements(By.CSS_SELECTOR, f'#div{j}')
# 每個(gè)單選題的答案進(jìn)行遍歷
for answer in sinPro:
# 對(duì)應(yīng)每個(gè)單選題的選項(xiàng)組合
ansItem = answer.find_elements(By.CSS_SELECTOR, '.ui-radio')
if ansItem:
random.choice(ansItem).click()
else:
ansItem = answer.find_elements(By.CSS_SELECTOR, '.ui-checkbox')
selected_items = random.sample(ansItem, random.randint(2, 4)) # 選擇兩個(gè)不重復(fù)的元素
for item in selected_items:
item.click()
# 答題時(shí)間間隔
time.sleep(random.randint(0, 1)/2)
#腳本執(zhí)行方法
def launch(nums):
for i in range(0, nums):
url_survey = 'https://www.wjx.cn/vm/ev6IfcA.aspx'
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_experimental_option('useAutomationExtension', False)
options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
# options.add_argument("--headless") # 啟用無(wú)頭模式
options.add_argument("--disable-gpu") # 禁用GPU加速
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options=options)
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument',
{'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'})
# 啟動(dòng)要填寫的地址
driver.get(url_survey)
# 填寫選擇題
# single(driver)
# # 提交按鈕
# end = driver.find_elements(By.CSS_SELECTOR, f'#ctlNext')
# end[0].click()
#提交按鈕
time.sleep(4)
print('已經(jīng)提交了{(lán)}次問卷'.format(int(i) + int(1)))
driver.quit()#停止
if __name__ == "__main__":
#填寫問卷次數(shù)
launch(4000)結(jié)果如圖


四.參考
【python】自動(dòng)填寫問卷星問卷及提交 http://t.csdnimg.cn/aifYa
到此這篇關(guān)于python調(diào)用chrome實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)操作的文章就介紹到這了,更多相關(guān)python 網(wǎng)頁(yè)自動(dòng)操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python+elasticsearch實(shí)現(xiàn)標(biāo)簽匹配計(jì)數(shù)操作
這篇文章主要介紹了python+elasticsearch實(shí)現(xiàn)標(biāo)簽匹配計(jì)數(shù)操作,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
python filecmp.dircmp實(shí)現(xiàn)遞歸比對(duì)兩個(gè)目錄的方法
這篇文章主要介紹了python filecmp.dircmp實(shí)現(xiàn)遞歸比對(duì)兩個(gè)目錄的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
vscode搭建python Django網(wǎng)站開發(fā)環(huán)境的示例
本文主要介紹了vscode搭建python Django網(wǎng)站開發(fā)環(huán)境的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Python獲取命令實(shí)時(shí)輸出-原樣彩色輸出并返回輸出結(jié)果的示例
今天小編就為大家分享一篇Python獲取命令實(shí)時(shí)輸出-原樣彩色輸出并返回輸出結(jié)果的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Gradio機(jī)器學(xué)習(xí)模型快速部署工具接口狀態(tài)
這篇文章主要為大家介紹了Gradio機(jī)器學(xué)習(xí)模型快速部署工具接口狀態(tài)的原文翻譯,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04

