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

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

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

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

