Python操作lxml庫(kù)實(shí)戰(zhàn)之Xpath篇
?一、Xpath概述
1、Xpath簡(jiǎn)介
Xpath(XML Path Language) 是一門(mén)在 XML 文檔中查找信息的語(yǔ)言,可以用來(lái)在XML文檔中對(duì)元素和屬性進(jìn)行遍歷。XPath 用于在 XML 文檔中通過(guò)元素和屬性進(jìn)行導(dǎo)航。其是一種路徑語(yǔ)言(XML Path Language),用來(lái)確定XML文檔中某部分的位置。
XPath基于XML的樹(shù)狀結(jié)構(gòu),提供在數(shù)據(jù)結(jié)構(gòu)樹(shù)中找尋節(jié)點(diǎn)的能力。起初XPath的提出的初衷是將其作為一個(gè)通用的、介于XPointer與XSL間的語(yǔ)法模型。但是XPath很快的被開(kāi)發(fā)者采用來(lái)當(dāng)作小型*查詢(xún)語(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)中的文本
通過(guò) 屬性方法可以獲取屬性?xún)?nèi)的內(nèi)容,但是位于節(jié)點(diǎn)之間的內(nèi)容無(wú)法獲取到,這個(gè)時(shí)候就可以通過(guò) text()
與 string()
方法來(lái)獲得其中的文本。
通過(guò) text()
獲取某個(gè)節(jié)點(diǎn)中的文本
In [1]: page.xpath('//li/a[3]/text()') Out[1]: ['霸道總裁愛(ài)上我', '斗羅大陸'] #通過(guò) text() 屬性可以很輕松的獲取標(biāo)簽之間的文本。
通過(guò) string()
獲取某個(gè)節(jié)點(diǎn)中的文本
In [1]: page.xpath('string(//li[1]/a[3])') Out[1]: '霸道總裁愛(ài)上我'
5、選取多個(gè)路徑
需要同時(shí)查找多個(gè)條件時(shí)可以通過(guò)在路徑表達(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算法與數(shù)據(jù)結(jié)構(gòu)朋友圈與水杯實(shí)驗(yàn)題分析實(shí)例
這篇文章主要介紹了python算法與數(shù)據(jù)結(jié)構(gòu)朋友圈與水杯實(shí)驗(yàn)題分析,總的來(lái)說(shuō)這并不是難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達(dá)的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過(guò)程。希望通過(guò)這道題能給你帶來(lái)一種解題優(yōu)化的思路2022-12-12Python?內(nèi)置logging?使用詳細(xì)介紹
提供日志記錄的接口和眾多處理模塊,供用戶(hù)存儲(chǔ)各種格式的日志,幫助調(diào)試程序或者記錄程序運(yùn)行過(guò)程中的輸出信息,這篇文章主要介紹了Python?內(nèi)置logging?使用講解,需要的朋友可以參考下2022-07-07python+pywinauto+lackey實(shí)現(xiàn)PC端exe自動(dòng)化的示例代碼
這篇文章主要介紹了python+pywinauto+lackey實(shí)現(xiàn)PC端exe自動(dòng)化的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04python自動(dòng)查詢(xún)12306余票并發(fā)送郵箱提醒腳本
這篇文章主要為大家詳細(xì)介紹了Python自動(dòng)查詢(xún)12306余票并發(fā)送郵箱提醒腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05Python裝飾器簡(jiǎn)單用法實(shí)例小結(jié)
這篇文章主要介紹了Python裝飾器簡(jiǎn)單用法,結(jié)合實(shí)例形式總結(jié)分析了Python裝飾器的基本功能、簡(jiǎn)單用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-12-12JupyterNotebook 如何調(diào)整輸出窗口的顯示效果
這篇文章主要介紹了JupyterNotebook 輸出窗口的顯示效果調(diào)整實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09講解如何利用 Python完成 Saga 分布式事務(wù)
這篇文章主要介紹了如何利用 Python 完成一個(gè) Saga 的分布式事務(wù),需要的朋友可以參考下面文章具體的內(nèi)容2021-09-09