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

Python Selenium 搜索和點(diǎn)擊示例代碼

 更新時(shí)間:2025年06月24日 11:48:48   作者:Humbunklung  
使用Python Selenium實(shí)現(xiàn)Google搜索與點(diǎn)擊,需安裝庫(kù)及瀏覽器驅(qū)動(dòng),通過顯式等待確保結(jié)果加載,支持精準(zhǔn)/隨機(jī)點(diǎn)擊,處理元素遮擋及廣告過濾,本文給大家介紹Python Selenium 搜索和點(diǎn)擊,感興趣的朋友一起看看吧

Python Selenium 搜索和點(diǎn)擊

?? 1. 環(huán)境準(zhǔn)備

  • 安裝依賴

安裝 Selenium 庫(kù)并配置瀏覽器驅(qū)動(dòng)(以 Chrome 為例):

uv add selenium webdriver-manager  # 自動(dòng)管理驅(qū)動(dòng)版本
  • 初始化瀏覽器

使用 webdriver-manager 自動(dòng)處理驅(qū)動(dòng)路徑問題:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.maximize_window()  # 最大化窗口避免元素遮擋

?? 2. 執(zhí)行 Google 搜索

輸入關(guān)鍵詞并提交
定位 Google 搜索框并模擬回車鍵提交搜索:

from selenium.webdriver.common.keys import Keys
driver.get("https://www.google.com")
search_box = driver.find_element("name", "q")  # 通過 name 定位搜索框
search_box.send_keys("Python 自動(dòng)化測(cè)試")
search_box.send_keys(Keys.RETURN)  # 回車提交搜索

??? 3. 定位并點(diǎn)擊搜索結(jié)果

等待結(jié)果加載
使用顯式等待確保結(jié)果加載完成,避免因網(wǎng)絡(luò)延遲失?。?/p>

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# 等待結(jié)果區(qū)域出現(xiàn)(最長(zhǎng)10秒)
WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, "div.g"))
)
  • 點(diǎn)擊指定結(jié)果

方案1:點(diǎn)擊特定位置結(jié)果(如第一條)

first_result = driver.find_element(By.CSS_SELECTOR, "div.g a")  # 定位第一條結(jié)果的鏈接
first_result.click()

方案2:隨機(jī)點(diǎn)擊一個(gè)結(jié)果

from random import choice
all_results = driver.find_elements(By.CSS_SELECTOR, "div.g a")  # 獲取所有結(jié)果鏈接
random_result = choice(all_results)  # 隨機(jī)選擇一個(gè)
random_result.click()

?? 4. 處理特殊情況

元素不可點(diǎn)擊時(shí)
若普通點(diǎn)擊失效(如元素被遮擋),用 JavaScript 強(qiáng)制執(zhí)行點(diǎn)擊:

driver.execute_script("arguments[0].click();", random_result)

過濾廣告鏈接
通過選擇器排除廣告區(qū)域(通常包含 class="ads" 的元素):

valid_results = driver.find_elements(By.XPATH, '//div[@class="g"]/a[not(ancestor::div[@class="ads"])]')

??? 5. 完整代碼示例

實(shí)際上,檢索的代碼會(huì)發(fā)生變化,需要我們?nèi)鐚?shí)調(diào)整,實(shí)測(cè)有效的代碼如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from webdriver_manager.chrome import ChromeDriverManager
from random import choice
options = webdriver.ChromeOptions()
# 繞過人機(jī)檢測(cè)
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
driver = webdriver.Chrome(options=options)
driver.get("https://www.google.com")
# 搜索關(guān)鍵詞
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Python Selenium 教程")
search_box.send_keys(Keys.RETURN)
# 等待結(jié)果加載
WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, "div.b8lM7"))
)
results = driver.find_elements(By.CSS_SELECTOR, "a h3")
if results:
    target = choice(results)
    target.click()  # 或 driver.execute_script("arguments[0].click();", target)
else:
    print("未找到有效結(jié)果")
# 后續(xù)操作(如數(shù)據(jù)提?。?
print("當(dāng)前頁面標(biāo)題:", driver.title)
# 關(guān)閉瀏覽器
driver.quit()

?? 6. 關(guān)鍵注意事項(xiàng)

  1. 反爬蟲機(jī)制:Google 會(huì)檢測(cè)自動(dòng)化行為,需控制頻率(如添加 time.sleep(2)),避免 IP 被封。
  2. 元素定位更新:Google 頁面結(jié)構(gòu)可能變化,若 CSS 選擇器失效需調(diào)整(如改用 XPath)。
  3. 瀏覽器兼容性:若使用 Firefox 或 Edge,需替換為對(duì)應(yīng)驅(qū)動(dòng)(如 GeckoDriverManager)。

此方案覆蓋了從環(huán)境配置到動(dòng)態(tài)交互的全流程,適用于自動(dòng)化測(cè)試或數(shù)據(jù)采集場(chǎng)景。實(shí)際使用時(shí)建議結(jié)合異常處理(如 try/except)增強(qiáng)穩(wěn)定性。

到此這篇關(guān)于Python Selenium 搜索和點(diǎn)擊示例代碼的文章就介紹到這了,更多相關(guān)Python Selenium搜索和點(diǎn)擊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • numpy數(shù)組做圖片拼接的實(shí)現(xiàn)(concatenate、vstack、hstack)

    numpy數(shù)組做圖片拼接的實(shí)現(xiàn)(concatenate、vstack、hstack)

    這篇文章主要介紹了numpy數(shù)組做圖片拼接的實(shí)現(xiàn)(concatenate、vstack、hstack),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 詳解python中GPU版本的opencv常用方法介紹

    詳解python中GPU版本的opencv常用方法介紹

    這篇文章主要介紹了詳解python中GPU版本的opencv常用方法介紹,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 獲取Django項(xiàng)目的全部url方法詳解

    獲取Django項(xiàng)目的全部url方法詳解

    這篇文章主要介紹了獲取Django項(xiàng)目的全部url方法詳解,小編覺得挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • python中通過selenium簡(jiǎn)單操作及元素定位知識(shí)點(diǎn)總結(jié)

    python中通過selenium簡(jiǎn)單操作及元素定位知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于python中通過selenium簡(jiǎn)單操作及元素定位的知識(shí)點(diǎn),有需要的朋友們可以學(xué)習(xí)下。
    2019-09-09
  • 使用python實(shí)現(xiàn)下載我們想聽的歌曲,速度超快

    使用python實(shí)現(xiàn)下載我們想聽的歌曲,速度超快

    這篇文章主要介紹了使用python實(shí)現(xiàn)下載我們想聽的歌曲,速度超快,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 20個(gè)解決日常編程問題的Python代碼分享

    20個(gè)解決日常編程問題的Python代碼分享

    在這篇文章中,主要和大家分享了20個(gè)Python代碼片段,以幫助你應(yīng)對(duì)日常編程挑戰(zhàn)。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟上小編一起了解一下
    2023-01-01
  • Python+Yolov5人臉口罩識(shí)別的詳細(xì)步驟

    Python+Yolov5人臉口罩識(shí)別的詳細(xì)步驟

    人臉口罩佩戴檢測(cè)(識(shí)別)是當(dāng)前急需的應(yīng)用,而YOLOv5是目前流行的強(qiáng)悍的目標(biāo)檢測(cè)技術(shù),下面這篇文章主要給大家介紹了關(guān)于Python+Yolov5人臉口罩識(shí)別的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Python裝飾器超詳細(xì)實(shí)例教程

    Python裝飾器超詳細(xì)實(shí)例教程

    本文介紹了Python裝飾器的基本概念、用途和實(shí)現(xiàn)方法,裝飾器是一種在不修改原函數(shù)代碼的前提下,為函數(shù)動(dòng)態(tài)添加功能的工具,其本質(zhì)是閉包和高階函數(shù),裝飾器可用于日志記錄、計(jì)時(shí)、權(quán)限校驗(yàn)等功能,感興趣的朋友跟隨小編一起看看吧
    2026-05-05
  • Python中的asyncio代碼詳解

    Python中的asyncio代碼詳解

    asyncio 是用來編寫 并發(fā) 代碼的庫(kù),使用 async/await 語法。 asyncio 被用作多個(gè)提供高性能 Python 異步框架的基礎(chǔ),包括網(wǎng)絡(luò)和網(wǎng)站服務(wù),數(shù)據(jù)庫(kù)連接庫(kù),分布式任務(wù)隊(duì)列等等。這篇文章主要介紹了Python中的asyncio,需要的朋友可以參考下
    2019-06-06
  • 一波神奇的Python語句、函數(shù)與方法的使用技巧總結(jié)

    一波神奇的Python語句、函數(shù)與方法的使用技巧總結(jié)

    這篇文章主要介紹了一波神奇的Python函數(shù)與方法的使用技巧總結(jié),包括裝飾器和with語句等的不常見用法,需要的朋友可以參考下
    2015-12-12

最新評(píng)論

庆云县| 开封市| 靖江市| 铁力市| 娱乐| 武汉市| 万盛区| 启东市| 集安市| 洪洞县| 河北省| 抚远县| 柯坪县| 贡山| 微博| 沈丘县| 丽水市| 乌兰察布市| 涡阳县| 抚州市| 无锡市| 清涧县| 缙云县| 渑池县| 喀什市| 老河口市| 敖汉旗| 北碚区| 中西区| 广安市| 五莲县| 阿瓦提县| 平凉市| 越西县| 罗田县| 堆龙德庆县| 昭通市| 新昌县| 泾阳县| 辽源市| 南澳县|