Python操作lxml庫(kù)實(shí)戰(zhàn)之Xpath篇
?一、Xpath概述
1、Xpath簡(jiǎn)介
Xpath(XML Path Language) 是一門在 XML 文檔中查找信息的語(yǔ)言,可以用來(lái)在XML文檔中對(duì)元素和屬性進(jìn)行遍歷。XPath 用于在 XML 文檔中通過元素和屬性進(jìn)行導(dǎo)航。其是一種路徑語(yǔ)言(XML Path Language),用來(lái)確定XML文檔中某部分的位置。
XPath基于XML的樹狀結(jié)構(gòu),提供在數(shù)據(jù)結(jié)構(gòu)樹中找尋節(jié)點(diǎn)的能力。起初XPath的提出的初衷是將其作為一個(gè)通用的、介于XPointer與XSL間的語(yǔ)法模型。但是XPath很快的被開發(fā)者采用來(lái)當(dāng)作小型*查詢語(yǔ)言被廣泛使用。
2、 Xpath的安裝
Xpath只是 lxml 庫(kù)中的一個(gè)模塊,想要使用 Xpath 那么就需要安裝 lxml 庫(kù)
pip install lxml
二、Xpath的常用規(guī)則
1、路徑查找
Xpath 的主要語(yǔ)法

2、節(jié)點(diǎn)查找
查找節(jié)點(diǎn)的一些語(yǔ)法

3、未知節(jié)點(diǎn)
當(dāng)我們匹配時(shí)會(huì)出現(xiàn)路徑不確定的情況,這個(gè)時(shí)候我們就要涉及到匹配未知節(jié)點(diǎn)。匹配未知節(jié)點(diǎn)也有對(duì)應(yīng)的語(yǔ)法。

4、獲取節(jié)點(diǎn)中的文本
通過 屬性方法可以獲取屬性內(nèi)的內(nèi)容,但是位于節(jié)點(diǎn)之間的內(nèi)容無(wú)法獲取到,這個(gè)時(shí)候就可以通過 text() 與 string() 方法來(lái)獲得其中的文本。
通過 text() 獲取某個(gè)節(jié)點(diǎn)中的文本
In [1]: page.xpath('//li/a[3]/text()')
Out[1]: ['霸道總裁愛上我', '斗羅大陸']
#通過 text() 屬性可以很輕松的獲取標(biāo)簽之間的文本。通過 string() 獲取某個(gè)節(jié)點(diǎn)中的文本
In [1]: page.xpath('string(//li[1]/a[3])')
Out[1]: '霸道總裁愛上我'5、選取多個(gè)路徑
需要同時(shí)查找多個(gè)條件時(shí)可以通過在路徑表達(dá)式中使用管道符("|"),選取若干個(gè)路徑
In [1]: page.xpath('XXXXXXX | XXXXXXXtext()')
Out[1]: ['']
總結(jié)
到此這篇關(guān)于Python操作lxml庫(kù)實(shí)戰(zhàn)之Xpath篇的文章就介紹到這了,更多相關(guān)Python操作lxml庫(kù)Xpath篇內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python logging管理不同級(jí)別log打印和存儲(chǔ)實(shí)例
這篇文章主要介紹了Python logging管理不同級(jí)別log打印和存儲(chǔ)實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
Django數(shù)據(jù)庫(kù)連接丟失問題的解決方法
這篇文章主要介紹了Django數(shù)據(jù)庫(kù)連接丟失問題的解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-12-12
Python實(shí)現(xiàn)的樸素貝葉斯分類器示例
這篇文章主要介紹了Python實(shí)現(xiàn)的樸素貝葉斯分類器,結(jié)合具體實(shí)例形式分析了基于Python實(shí)現(xiàn)的樸素貝葉斯分類器相關(guān)定義與使用技巧,需要的朋友可以參考下2018-01-01
Django中使用CORS實(shí)現(xiàn)跨域請(qǐng)求過程解析
這篇文章主要介紹了Django中使用CORS實(shí)現(xiàn)跨域請(qǐng)求過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08

