XPath是一種用于在XML文檔中定位和選擇元素的語(yǔ)言。它是一種基于路徑表達(dá)式的語(yǔ)言,可以使用路徑表達(dá)式來(lái)選擇XML文檔中的元素。
以下是XPath中一些常用的語(yǔ)法總結(jié):
語(yǔ)法規(guī)則
表達(dá)式 | 作用 |
---|---|
nodename | 選取此層級(jí)節(jié)點(diǎn)下的所有子節(jié)點(diǎn) |
/ | 代表從根節(jié)點(diǎn)進(jìn)行選取 |
// | 可以理解為匹配,就是在所有節(jié)點(diǎn)中選取此節(jié)點(diǎn),直到匹配為止 |
. | 選取當(dāng)前節(jié)點(diǎn) |
… | 選取當(dāng)前節(jié)點(diǎn)上一層(上一級(jí)目錄) |
@ | 選取屬性(也是匹配) |
標(biāo)簽定位
方式 | 效果 |
---|---|
/html/body/div | 表示從根節(jié)點(diǎn)開始尋找,標(biāo)簽與標(biāo)簽之間/表示一個(gè)層級(jí) |
/html//div | 表示多個(gè)層級(jí) 作用于兩個(gè)標(biāo)簽之間(也可以理解為在html下進(jìn)行匹配尋找標(biāo)簽div) |
//div | 從任意節(jié)點(diǎn)開始尋找,也就是查找所有的div標(biāo)簽 |
./div | 表示從當(dāng)前的標(biāo)簽開始尋找div |
屬性定位
需求 | 格式 |
---|---|
定位div中屬性名為href,屬性值為‘www.baidu.com’的div標(biāo)簽 | @屬性名=屬性值 |
href為屬性名 ‘www.baidu.com’為屬性值 | /html/body/div[href=‘www.baidu.com’] |
索引定位
需求 | 格式 |
---|---|
定位ul下第二個(gè)li標(biāo)簽(下圖) | //ul/li[2] |
索引值開始位置為 | 1 |
取文本內(nèi)容
方法 | 效果 |
---|---|
/text() | 獲取標(biāo)簽下直系的標(biāo)簽內(nèi)容 |
//text() | 獲取標(biāo)簽中所有的文本內(nèi)容 |
string() | 獲取標(biāo)簽中所有的文本內(nèi)容 |
xpath的使用使得我們?cè)谂榔鸬骄W(wǎng)頁(yè)源代碼時(shí)可以快速找到我們需要的數(shù)據(jù),如:圖片鏈接,文章標(biāo)題等
未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » python爬蟲之—xpath基本語(yǔ)法總結(jié)