日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python爬虫:Xpath语法笔记

發(fā)布時(shí)間:2025/7/25 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python爬虫:Xpath语法笔记 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python爬蟲: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屬性

二、謂語

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

實(shí)例:

?

表達(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軸

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

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

?

preceding-siblingxpath(‘./preceding-sibling::*’)選取當(dāng)前節(jié)點(diǎn)之前的兄弟節(jié)點(diǎn)
selfxpath(‘./self::*’)選取當(dāng)前節(jié)點(diǎn)

?

六、功能函數(shù)???

使用功能函數(shù)能夠更好的進(jìn)行模糊搜索

函數(shù)用法解釋
starts-withxpath(‘//div[starts-with(@id,”ma”)]‘)選取id值以ma開頭的div節(jié)點(diǎn)
containsxpath(‘//div[contains(@id,”ma”)]‘)選取id值包含ma的div節(jié)點(diǎn)
andxpath(‘//div[contains(@id,”ma”) and contains(@id,”in”)]‘)選取id值包含ma和in的div節(jié)點(diǎn)
text()xpath(‘//div[contains(text(),”ma”)]‘)選取節(jié)點(diǎn)文本包含ma的div節(jié)點(diǎn)
???

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

轉(zhuǎn)載于:https://www.cnblogs.com/PeterZhang1520389703/p/8193465.html

總結(jié)

以上是生活随笔為你收集整理的Python爬虫:Xpath语法笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。