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

Python自動(dòng)化獲取網(wǎng)頁(yè)輸入框內(nèi)容并進(jìn)行文本校對(duì)

 更新時(shí)間:2025年12月29日 08:52:31   作者:小莊-Python辦公  
Python 不僅可以抓取網(wǎng)頁(yè)上的靜態(tài)文本,完全有能力抓取動(dòng)態(tài)輸入框中的內(nèi)容,下面我們就來看看Python如何自動(dòng)化獲取網(wǎng)頁(yè)輸入框內(nèi)容并進(jìn)行文本校對(duì)吧

 Python 不僅可以抓取網(wǎng)頁(yè)上的靜態(tài)文本,完全有能力抓取動(dòng)態(tài)輸入框(Input fields)中的內(nèi)容,并將其與數(shù)據(jù)庫(kù)、Excel 文件或網(wǎng)頁(yè)上的其他文本段落進(jìn)行自動(dòng)化比對(duì)。

這一過程在自動(dòng)化測(cè)試(QA)、數(shù)據(jù)爬蟲以及表單驗(yàn)證場(chǎng)景中非常常見。對(duì)于初學(xué)者來說,理解這一過程的核心在于明白網(wǎng)頁(yè)結(jié)構(gòu)的差異:普通文本通常存儲(chǔ)在標(biāo)簽之間,而輸入框的內(nèi)容通常存儲(chǔ)在屬性(Attribute)中。

本文將以最適合初學(xué)者的工具 Selenium 為例,手把手教你如何實(shí)現(xiàn)這一功能。

1. 核心概念與準(zhǔn)備工作

在開始編寫代碼之前,我們需要理解兩個(gè)基礎(chǔ)概念,并配置好 Python 環(huán)境。

1.1 核心區(qū)別:.text與.value

這是初學(xué)者最容易掉入的陷阱:

  • 普通文本(如 <p>, div>, span>:內(nèi)容夾在標(biāo)簽中間,例如 <div>這里是文本</div>。我們通過獲取元素的 text 屬性來讀取。
  • 輸入框(如 <input>, <textarea>:內(nèi)容通常作為屬性存在,例如 <input value="用戶輸入的內(nèi)容">。我們需要通過獲取元素的 value 屬性來讀取。

1.2 環(huán)境準(zhǔn)備

我們需要安裝 Python 的瀏覽器自動(dòng)化庫(kù) Selenium,以及自動(dòng)管理瀏覽器驅(qū)動(dòng)的工具 webdriver-manager。

打開你的終端(Terminal 或 CMD),運(yùn)行以下命令:

pip install selenium webdriver-manager

2. 實(shí)戰(zhàn)步驟:從抓取到校對(duì)

我們將模擬一個(gè)場(chǎng)景:網(wǎng)頁(yè)上有一個(gè)輸入框(用戶已填入姓名),網(wǎng)頁(yè)下方有一段標(biāo)準(zhǔn)文本,我們需要核對(duì)輸入框里的名字是否與標(biāo)準(zhǔn)文本一致。

第一步:初始化瀏覽器

首先,我們需要通過 Python 啟動(dòng)一個(gè)瀏覽器窗口。

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
import time

# 自動(dòng)下載并配置 Chrome 驅(qū)動(dòng)
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)

# 打開目標(biāo)網(wǎng)頁(yè)(此處以一個(gè)示例 HTML 文件或網(wǎng)站為例)
# 在實(shí)際操作中,請(qǐng)?zhí)鎿Q為你需要操作的 URL
driver.get("https://www.example.com") 

# 強(qiáng)制等待幾秒,確保網(wǎng)頁(yè)加載完成(生產(chǎn)環(huán)境建議使用顯式等待,見下文)
time.sleep(2)

第二步:定位并抓取“輸入框”內(nèi)容

假設(shè)網(wǎng)頁(yè)上有一個(gè)輸入框,其 HTML 代碼如下:<input id="username_input" type="text" value="張三">

我們需要抓取這個(gè) value 中的“張三”。

# 1. 定位輸入框元素 (假設(shè) ID 為 username_input)
input_element = driver.find_element(By.ID, "username_input")

# 2. 關(guān)鍵點(diǎn):使用 get_attribute('value') 獲取輸入框內(nèi)的文字
# 注意:不能使用 .text,否則會(huì)返回空字符串
input_content = input_element.get_attribute("value")

print(f"抓取到的輸入框內(nèi)容: {input_content}")

第三步:定位并抓取“參考文本”

假設(shè)網(wǎng)頁(yè)下方有一個(gè)標(biāo)準(zhǔn)答案區(qū)域:<div id="standard_name">張三</div>

# 1. 定位參考文本元素
text_element = driver.find_element(By.ID, "standard_name")

# 2. 對(duì)于普通標(biāo)簽,直接使用 .text 獲取可見文本
reference_content = text_element.text

print(f"抓取到的參考文本: {reference_content}")

第四步:執(zhí)行校對(duì)邏輯(Python 字符串比對(duì))

現(xiàn)在兩個(gè)數(shù)據(jù)都已經(jīng)在 Python 變量中了,我們可以使用標(biāo)準(zhǔn)的 Python 邏輯進(jìn)行比對(duì)。

# 去除可能存在的首尾空格,提高比對(duì)準(zhǔn)確率
clean_input = input_content.strip()
clean_ref = reference_content.strip()

print("-" * 30)
print("開始校對(duì)...")

if clean_input == clean_ref:
    print("? 校對(duì)成功:輸入框內(nèi)容與參考文本完全一致。")
else:
    print("? 校對(duì)失?。?)
    print(f"差異詳情 -> 輸入框: [{clean_input}] vs 參考文本: [{clean_ref}]")

3. 進(jìn)階技巧:模糊匹配與差異高亮

在現(xiàn)實(shí)世界中,文本可能只有細(xì)微差別(比如多了一個(gè)句號(hào))。如果不需要由“完全一致”,可以使用 Python 內(nèi)置的 difflib 庫(kù)來計(jì)算相似度。

import difflib

# 計(jì)算相似度 (0.0 到 1.0)
similarity = difflib.SequenceMatcher(None, clean_input, clean_ref).ratio()

print(f"文本相似度: {similarity * 100:.2f}%")

if similarity > 0.9: # 設(shè)定閾值,例如 90% 以上算通過
    print("?? 內(nèi)容基本一致(允許細(xì)微差異)。")

4. 常見陷阱與解決方案

作為初學(xué)者,在執(zhí)行上述代碼時(shí)可能會(huì)遇到以下問題:

4.1 抓取到的輸入框內(nèi)容為空

原因:你可能使用了 element.text 而不是 element.get_attribute('value')

特例:如果是 <textarea>這里是內(nèi)容</textarea> 標(biāo)簽,有時(shí)可以使用 .text,但為了保險(xiǎn)起見,建議統(tǒng)一使用.get_attribute('value')。

4.2 元素找不到 (NoSuchElementException)

原因:代碼運(yùn)行速度太快,網(wǎng)頁(yè)還沒加載完輸入框,代碼就嘗試去抓取了。

解決:不要只用 time.sleep()。使用 Selenium 的 顯式等待 (WebDriverWait)。

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 等待最多 10 秒,直到元素出現(xiàn)
input_element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "username_input"))
)

4.3 輸入框在 iframe 里

現(xiàn)象:你能看到元素,但 Selenium 怎么都找不到。

解決:網(wǎng)頁(yè)可能嵌套了 iframe。你需要先切換進(jìn)去:
driver.switch_to.frame("frame_id"),操作完后再切回來 driver.switch_to.default_content()

5. 總結(jié)

使用 Python 校對(duì)網(wǎng)頁(yè)輸入框內(nèi)容不僅可行,而且是自動(dòng)化領(lǐng)域的一項(xiàng)基礎(chǔ)技能。

完整的邏輯回顧:

  • 啟動(dòng) Selenium 瀏覽器。
  • 定位 輸入框元素,使用 .get_attribute('value') 提取動(dòng)態(tài)內(nèi)容。
  • 定位 對(duì)照組文本,使用 .text 提取靜態(tài)內(nèi)容。
  • 清洗 數(shù)據(jù)(去除空格 .strip())。
  • 利用 Python 的 if 語句或 difflib 庫(kù)進(jìn)行精確或模糊比對(duì)。

只要掌握了 .text.get_attribute('value') 的區(qū)別,你就已經(jīng)跨過了這個(gè)任務(wù)最大的門檻?,F(xiàn)在,嘗試編寫你的第一個(gè)自動(dòng)校對(duì)腳本吧!

到此這篇關(guān)于Python自動(dòng)化獲取網(wǎng)頁(yè)輸入框內(nèi)容并進(jìn)行文本校對(duì)的文章就介紹到這了,更多相關(guān)Python獲取網(wǎng)頁(yè)內(nèi)容并校對(duì)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python如何獲取當(dāng)前系統(tǒng)的日期

    python如何獲取當(dāng)前系統(tǒng)的日期

    這篇文章主要介紹了python如何獲取當(dāng)前系統(tǒng)的日期,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python OpenCV實(shí)現(xiàn)圖像模板匹配詳解

    Python OpenCV實(shí)現(xiàn)圖像模板匹配詳解

    提供一個(gè)模板圖像,一個(gè)目標(biāo)圖像,且滿足模板圖像是目標(biāo)圖像的一部分,從目標(biāo)圖像中尋找特定的模板圖像的過程,即為模板匹配。本文將詳細(xì)講解如何利用Python OpenCV實(shí)現(xiàn)圖像模板匹配,需要的可以參考一下
    2022-04-04
  • 一步步教你用python的scrapy編寫一個(gè)爬蟲

    一步步教你用python的scrapy編寫一個(gè)爬蟲

    這篇文章主要給大家介紹了如何利用python的scrapy編寫一個(gè)爬蟲的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用scrapy具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Linux中安裝Python的交互式解釋器IPython的教程

    Linux中安裝Python的交互式解釋器IPython的教程

    IPython是一種基于Python的Shell,由于有了Python編程語言的支撐,而比一般的Shell更加強(qiáng)大.下面就來看一下Linux中安裝Python的交互式解釋器IPython的教程
    2016-06-06
  • python標(biāo)準(zhǔn)庫(kù)os庫(kù)的函數(shù)介紹

    python標(biāo)準(zhǔn)庫(kù)os庫(kù)的函數(shù)介紹

    這篇文章主要介紹了python標(biāo)準(zhǔn)庫(kù)os庫(kù)的函數(shù)介紹,需要的朋友可以參考下
    2020-02-02
  • Django Auth應(yīng)用實(shí)現(xiàn)用戶身份認(rèn)證

    Django Auth應(yīng)用實(shí)現(xiàn)用戶身份認(rèn)證

    Django Auth 應(yīng)用一般用在用戶的登錄注冊(cè)上,用于判斷當(dāng)前的用戶是否合法。本文將介紹Auth的另一個(gè)功能,即認(rèn)證用戶身份,感興趣的同學(xué)可以關(guān)注一下
    2021-12-12
  • Python的對(duì)象傳遞與Copy函數(shù)使用詳解

    Python的對(duì)象傳遞與Copy函數(shù)使用詳解

    今天小編就為大家分享一篇Python的對(duì)象傳遞與Copy函數(shù)使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python簡(jiǎn)單文本處理的方法

    python簡(jiǎn)單文本處理的方法

    這篇文章主要介紹了python簡(jiǎn)單文本處理的方法,涉及Python針對(duì)文本文件及字符串操作的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • python生成excel的實(shí)例代碼

    python生成excel的實(shí)例代碼

    這篇文章主要為大家詳細(xì)介紹了python生成excel的實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 使用Python實(shí)現(xiàn)橋接模式的代碼詳解

    使用Python實(shí)現(xiàn)橋接模式的代碼詳解

    橋接模式是一種結(jié)構(gòu)型設(shè)計(jì)模式,它將抽象部分與其實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化,本文將給大家介紹如何使用Python實(shí)現(xiàn)橋接模式,需要的朋友可以參考下
    2024-02-02

最新評(píng)論

柯坪县| 北安市| 澎湖县| 邵武市| 平乐县| 南岸区| 苗栗市| 平昌县| 景宁| 天镇县| 泽州县| 扶绥县| 蒙城县| 沽源县| 林西县| 南丹县| 浦东新区| 大名县| 桦川县| 高清| 临桂县| 巴林右旗| 大名县| 翼城县| 邹平县| 甘德县| 虹口区| 茶陵县| 西宁市| 镇赉县| 莎车县| 福鼎市| 城步| 武夷山市| 清远市| 纳雍县| 福海县| 德州市| 巩义市| 富锦市| 都江堰市|