Python操作lxml庫實(shí)戰(zhàn)之Xpath篇
?一、Xpath概述
1、Xpath簡(jiǎn)介
Xpath(XML Path Language) 是一門在 XML 文檔中查找信息的語言,可以用來在XML文檔中對(duì)元素和屬性進(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的提出的初衷是將其作為一個(gè)通用的、介于XPointer與XSL間的語法模型。但是XPath很快的被開發(fā)者采用來當(dāng)作小型*查詢語言被廣泛使用。
2、 Xpath的安裝
Xpath只是 lxml
庫中的一個(gè)模塊,想要使用 Xpath
那么就需要安裝 lxml
庫
pip install lxml
二、Xpath的常用規(guī)則
1、路徑查找
Xpath 的主要語法
2、節(jié)點(diǎn)查找
查找節(jié)點(diǎn)的一些語法
3、未知節(jié)點(diǎn)
當(dāng)我們匹配時(shí)會(huì)出現(xiàn)路徑不確定的情況,這個(gè)時(shí)候我們就要涉及到匹配未知節(jié)點(diǎn)。匹配未知節(jié)點(diǎn)也有對(duì)應(yīng)的語法。
4、獲取節(jié)點(diǎn)中的文本
通過 屬性方法可以獲取屬性內(nèi)的內(nèi)容,但是位于節(jié)點(diǎn)之間的內(nèi)容無法獲取到,這個(gè)時(shí)候就可以通過 text()
與 string()
方法來獲得其中的文本。
通過 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庫實(shí)戰(zhàn)之Xpath篇的文章就介紹到這了,更多相關(guān)Python操作lxml庫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)題分析,總的來說這并不是難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達(dá)的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過程。希望通過這道題能給你帶來一種解題優(yōu)化的思路2022-12-12Python?內(nèi)置logging?使用詳細(xì)介紹
提供日志記錄的接口和眾多處理模塊,供用戶存儲(chǔ)各種格式的日志,幫助調(diào)試程序或者記錄程序運(yùn)行過程中的輸出信息,這篇文章主要介紹了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)化的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04python自動(dòng)查詢12306余票并發(fā)送郵箱提醒腳本
這篇文章主要為大家詳細(xì)介紹了Python自動(dòng)查詢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),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09講解如何利用 Python完成 Saga 分布式事務(wù)
這篇文章主要介紹了如何利用 Python 完成一個(gè) Saga 的分布式事務(wù),需要的朋友可以參考下面文章具體的內(nèi)容2021-09-09