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

selenium XPath定位的實(shí)現(xiàn)示例

 更新時(shí)間:2024年10月18日 09:15:52   作者:itxck  
XPath是一種在XML文檔中定位和選擇節(jié)點(diǎn)的語言,通過路徑表達(dá)式遍歷XML樹,支持節(jié)點(diǎn)選取、字符串匹配、數(shù)值計(jì)算、邏輯運(yùn)算等功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、XPATH概念

XPath是一種用于在 XML 文檔中定位和選擇節(jié)點(diǎn)的語言。它是一種在 XML 文檔中導(dǎo)航和查詢數(shù)據(jù)的標(biāo)準(zhǔn)方式,通常用于從 XML 文檔中提取特定信息或執(zhí)行數(shù)據(jù)操作。XPath 使用路徑表達(dá)式來遍歷 XML 樹,并且支持多種功能,如節(jié)點(diǎn)選取、字符串匹配、數(shù)值計(jì)算、邏輯運(yùn)算等,可以幫助用戶準(zhǔn)確定位到文檔中所需的節(jié)點(diǎn)或內(nèi)容。XPath 的語法類似于文件系統(tǒng)路徑,通過使用斜杠(/)、雙斜杠(//)、方括號(hào)([])等符號(hào)來描述節(jié)點(diǎn)之間的層次關(guān)系和屬性條件,從而實(shí)現(xiàn)對(duì) XML 結(jié)構(gòu)的靈活查詢和篩選。XPath 在 XML 數(shù)據(jù)處理、Web 抓取、XSLT 轉(zhuǎn)換等領(lǐng)域廣泛應(yīng)用,為處理和操作 XML 數(shù)據(jù)提供了強(qiáng)大的工具和方法。

二、常用規(guī)則與方法

我們現(xiàn)用表格列舉一下幾個(gè)常用規(guī)則:

方法概念
/從當(dāng)前節(jié)點(diǎn)選取直接子節(jié)點(diǎn)
/ /從當(dāng)前節(jié)點(diǎn)選取子孫節(jié)點(diǎn)
.選取當(dāng)前節(jié)點(diǎn)
選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)

1.f12例子:

<div>
    <ul>
         <li class="item-0">
         	<a  rel="external nofollow" >第一項(xiàng)</a>
         </li>
         <li class="item-1">
         	<a  rel="external nofollow" >第二項(xiàng)</a>
         </li>
         <li class="item-inactive">
         	<a  rel="external nofollow" >第三項(xiàng)</a>
         </li>
         <li class="item-1">
         	<a  rel="external nofollow" >第四項(xiàng)</a>
         </li>
     </ul>
 </div>

2.節(jié)點(diǎn)獲取文本

獲取first item文本

  • 通過連續(xù)的 / 或 // 可以查找子節(jié)點(diǎn)或子孫節(jié)點(diǎn)
  • 我們選取了第一個(gè)li 節(jié)點(diǎn),中括號(hào)中傳入數(shù)字1即可,注意這里和代碼中不同,序號(hào)是以 1 開頭的,不是 0 開頭的。
  • 如果我們要選取最后一個(gè) li 節(jié)點(diǎn),中括號(hào)中傳入 last() 即可,返回的便是最后一個(gè) li 節(jié)點(diǎn)
  • 最后使用/text()或者在括號(hào)外面.text獲取節(jié)點(diǎn)內(nèi)部文本
dr.find_element(By.XPATH,'//div/ul/li[1]/a/text()')
dr.find_element(By.XPATH,'//div/ul/li[1]/a').text

3.屬性匹配

在選取的時(shí)候我們還可以用 @ 符號(hào)進(jìn)行屬性過濾,比如在這里如果我們要選取 class 為 item-0 的 li 節(jié)點(diǎn),可以這樣實(shí)現(xiàn):

dr.find_element(By.XPATH,'//li/a[@class="item-0"]')

在這里我們通過加入 [@class=“item-0”] 就限制了節(jié)點(diǎn)的 class 屬性為 item-0,文本中符合條件的 li 節(jié)點(diǎn)有一個(gè),所以返回結(jié)果應(yīng)該返回匹配到的元素,結(jié)果如下:

第一項(xiàng)

4. 屬性獲取

我們知道了用 text() 可以獲取節(jié)點(diǎn)內(nèi)部文本,那么節(jié)點(diǎn)屬性該怎樣獲取呢?其實(shí)還是用 @ 符號(hào)就可以,例如我們想獲取所有 li 節(jié)點(diǎn)下所有 a 節(jié)點(diǎn)的 href 屬性,代碼如下:

dr.find_element(By.XPATH,'//li/a/@href')

在這里我們通過 @href 即可獲取節(jié)點(diǎn)的 href 屬性

我們還能使用selenium里dr.find_elements方法,用for循環(huán)取便歷所有的"//li/a",用.get_attribute(‘href’),將所有的href屬性全部獲取,代碼如下:

a=dr.find_elements(By.XPATH,'//li/a')
for href in a:
    print(href.get_attribute('href'))

5.iframe標(biāo)簽處理

當(dāng)有frame標(biāo)簽時(shí)需要使用他的id來進(jìn)行切換,要不然不能取到frame標(biāo)簽下的內(nèi)容

語法:

switch_to.frame(“frame_id”)

例子:

<body>
<iframe src = "a.html" id = "frame_id" name = "myframe">
</iframe>
</body>

如何定位到iframe呢:

  from selenium import webdriver
  
  driver = webdriver.Chrome()
  #用frame的index來定位,第一位時(shí)0
  driver.switch_to.frame(0)

三、同級(jí)節(jié)點(diǎn)元素定位

【同級(jí)元素】:

  • 向下尋找 following-sibling::
  • 向上尋找 preceding::

在這里插入圖片描述

通過li[2]QQ登錄使用following-sibling::找微博登錄:

dr.find_element(By.XPATH,'//div[@class='_3x8w3YCi']/ul/li[2]/following-sibling::li[1]')

在這里插入圖片描述

  • 通過li[2]QQ登錄使用preceding-sibling::找微信登錄:
dr.find_element(By.XPATH,'//div[@class='_3x8w3YCi']/ul/li[2]/preceding-sibling::li[1]')

在這里插入圖片描述

四、關(guān)鍵字定位

根據(jù)文本找位置

dr.find_element(By.XPATH,'//li/a[text()="第一項(xiàng)"]')

五、定位父級(jí)元素

【父級(jí)元素】

/parent::

如下面的xpath,定位ul下的li包含"處理"的文本,然后再定位該li的父級(jí)元素

完整代碼:

dr.find_element(By.XPATH,'ul/li/parpent::*')

到此這篇關(guān)于selenium XPath定位的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)selenium XPath定位內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • python實(shí)現(xiàn)圖像降噪

    python實(shí)現(xiàn)圖像降噪

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)圖像降噪,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 關(guān)于python返回值return用法詳解

    關(guān)于python返回值return用法詳解

    這篇文章主要介紹了python中的return關(guān)鍵字,包括其含義、作用、默認(rèn)返回值、不同整數(shù)值的含義、返回值的類型、函數(shù)作為參數(shù)傳遞以及在類方法中的特殊情況,需要的朋友可以參考下
    2024-12-12
  • 淺談python中str字符串和unicode對(duì)象字符串的拼接問題

    淺談python中str字符串和unicode對(duì)象字符串的拼接問題

    今天小編就為大家分享一篇淺談python中str字符串和unicode對(duì)象字符串的拼接問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python中作用域的深入講解

    Python中作用域的深入講解

    這篇文章主要給大家介紹了關(guān)于Python中作用域的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • python gensim使用word2vec詞向量處理中文語料的方法

    python gensim使用word2vec詞向量處理中文語料的方法

    這篇文章主要介紹了python gensim使用word2vec詞向量處理中文語料的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python爬蟲爬取美劇網(wǎng)站的實(shí)現(xiàn)代碼

    Python爬蟲爬取美劇網(wǎng)站的實(shí)現(xiàn)代碼

    一直在學(xué)習(xí)Python爬蟲,所以今天就心血來潮來寫了個(gè)爬蟲,抓取該網(wǎng)站上所有美劇鏈接,并保存在文本文檔中,想要哪部劇就直接打開復(fù)制鏈接到迅雷就可以下載啦
    2016-09-09
  • Python使用itcaht庫實(shí)現(xiàn)微信自動(dòng)收發(fā)消息功能

    Python使用itcaht庫實(shí)現(xiàn)微信自動(dòng)收發(fā)消息功能

    這篇文章主要介紹了Python使用itcaht庫實(shí)現(xiàn)微信自動(dòng)收發(fā)消息功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 使用用Pyspark和GraphX實(shí)現(xiàn)解析復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)

    使用用Pyspark和GraphX實(shí)現(xiàn)解析復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)

    GraphX是Spark提供的圖計(jì)算API,它提供了一套強(qiáng)大的工具,這篇文章將詳細(xì)為大家介紹如何在Python?/?pyspark環(huán)境中使用graphx進(jìn)行圖計(jì)算,感興趣的可以了解下
    2024-01-01
  • python 垃圾收集機(jī)制的實(shí)例詳解

    python 垃圾收集機(jī)制的實(shí)例詳解

    這篇文章主要介紹了 python 垃圾收集機(jī)制的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助大家理解這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • Python實(shí)現(xiàn)按特定格式對(duì)文件進(jìn)行讀寫的方法示例

    Python實(shí)現(xiàn)按特定格式對(duì)文件進(jìn)行讀寫的方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)按特定格式對(duì)文件進(jìn)行讀寫的方法,可實(shí)現(xiàn)文件按原有格式讀取與寫入的功能,涉及文件的讀取、遍歷、轉(zhuǎn)換、寫入等相關(guān)操作技巧,需要的朋友可以參考下
    2017-11-11

最新評(píng)論

精河县| 兖州市| 虎林市| 宁明县| 潼关县| 阿城市| 河南省| 阜南县| 阳江市| 巫山县| 崇明县| 神农架林区| 商水县| 会东县| 辽中县| 仁布县| 息烽县| 五常市| 武定县| 鹤山市| 利津县| 东宁县| 名山县| 长治市| 汉沽区| 綦江县| 即墨市| 柳林县| 镇雄县| 京山县| 北安市| 五莲县| 乐亭县| 和平县| 建平县| 六枝特区| 大理市| 永嘉县| 铜鼓县| 神池县| 儋州市|