Xpath

一、選取節(jié)點(diǎn)
常用的路勁表達(dá)式:

表達(dá)式 描述 實(shí)例 注釋
nodename 選取nodename節(jié)點(diǎn)的所有子節(jié)點(diǎn) xpath(‘//div’) 選取了div節(jié)點(diǎn)的所有子節(jié)點(diǎn)
/ 從根節(jié)點(diǎn)選取 xpath(‘/div’) 從根節(jié)點(diǎn)上選取div節(jié)點(diǎn)
// 選取所有的當(dāng)前節(jié)點(diǎn),不考慮他們的位置 xpath(‘//div’) 選取所有的div節(jié)點(diǎn)
. 選取當(dāng)前節(jié)點(diǎn) xpath(‘./div’) 選取當(dāng)前節(jié)點(diǎn)下的div節(jié)點(diǎn)
.. 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn) xpath(‘..’) 回到上一個(gè)節(jié)點(diǎn)
@ 選取屬性 xpath(’//@calss’) 選取所有的class屬性

二、謂語

謂語被嵌在方括號內(nèi),用來查找某個(gè)特定的節(jié)點(diǎn)或包含某個(gè)指定的值的節(jié)點(diǎn)

|表達(dá)式| 結(jié)果|
|---| -- -|
|xpath(‘/body/div[1]’)|選取body下的第一個(gè)div節(jié)點(diǎn)|
|xpath(‘/body/div[last()]’)|選取body下最后一個(gè)div節(jié)點(diǎn)|
|xpath(‘/body/div[last()-1]’) |選取body下倒數(shù)第二個(gè)div節(jié)點(diǎn)
|xpath(‘/body/div[positon()<3]’) |選取body下前兩個(gè)div節(jié)點(diǎn)
|xpath(‘/body/div[@class]’) |選取body下帶有class屬性的div節(jié)點(diǎn)
|xpath(‘/body/div[@class=”main”]’) |選取body下class屬性為main的div節(jié)點(diǎn)
|xpath(‘/body/div[price>35.00]’|選取body下price元素值大于35的div節(jié)點(diǎn)

三、通配符

Xpath通過通配符來選取未知的XML元素

表達(dá)式 結(jié)果
xpath(’/div/*’) 選取div下的所有子節(jié)點(diǎn)
xpath(‘/div[@*]’) 選取所有帶屬性的div節(jié)點(diǎn)

四、取多個(gè)路徑
使用“|”運(yùn)算符可以選取多個(gè)路徑

表達(dá)式 結(jié)果
'xpath(‘//div|//table’)' 選取所有的div和table節(jié)點(diǎn)

五、Xpath軸
軸可以定義相對于當(dāng)前節(jié)點(diǎn)的節(jié)點(diǎn)集

軸名稱 表達(dá)式 描述
ancestor xpath(‘./ancestor::*’) 選取當(dāng)前節(jié)點(diǎn)的所有先輩節(jié)點(diǎn)(父、祖父)
ancestor-or-self xpath(‘./ancestor-or-self::*’) 選取當(dāng)前節(jié)點(diǎn)的所有先輩節(jié)點(diǎn)以及節(jié)點(diǎn)本身
attribute xpath(‘./attribute::*’) 選取當(dāng)前節(jié)點(diǎn)的所有屬性
child xpath(‘./child::*’) 返回當(dāng)前節(jié)點(diǎn)的所有子節(jié)點(diǎn)
descendant xpath(‘./descendant::*’) 返回當(dāng)前節(jié)點(diǎn)的所有后代節(jié)點(diǎn)(子節(jié)點(diǎn)、孫節(jié)點(diǎn))
following xpath(‘./following::*’) 選取文檔中當(dāng)前節(jié)點(diǎn)結(jié)束標(biāo)簽后的所有節(jié)點(diǎn)
following-sibing xpath(‘./following-sibing::*’) 選取當(dāng)前節(jié)點(diǎn)之后的兄弟節(jié)點(diǎn)
parent xpath(‘./parent::*’) 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)
preceding xpath(‘./preceding::*’) 選取文檔中當(dāng)前節(jié)點(diǎn)開始標(biāo)簽前的所有節(jié)點(diǎn)

scrapy xpath文檔:http://doc.scrapy.org/en/0.14/topics/selectors.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容