Python爬虫:Xpath语法笔记
生活随笔
收集整理的這篇文章主要介紹了
Python爬虫:Xpath语法笔记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python爬蟲:Xpath語法筆記
一、選取節點
常用的路勁表達式:
| 表達式 | 描述 | 實例 | ? |
| nodename | 選取nodename節點的所有子節點 | xpath(‘//div’) | 選取了div節點的所有子節點 |
| / | 從根節點選取 | xpath(‘/div’) | 從根節點上選取div節點 |
| // | 選取所有的當前節點,不考慮他們的位置 | xpath(‘//div’) | 選取所有的div節點 |
| . | 選取當前節點 | xpath(‘./div’) | 選取當前節點下的div節點 |
| .. | 選取當前節點的父節點 | xpath(‘..’) | 回到上一個節點 |
| @ | 選取屬性 | xpath(’//@calss’) | 選取所有的class屬性 |
二、謂語
謂語被嵌在方括號內,用來查找某個特定的節點或包含某個制定的值的節點
實例:
?
| 表達式 | 結果 |
| xpath(‘/body/div[1]’) | 選取body下的第一個div節點 |
| xpath(‘/body/div[last()]’) | 選取body下最后一個div節點 |
| xpath(‘/body/div[last()-1]’) | 選取body下倒數第二個div節點 |
| xpath(‘/body/div[positon()<3]’) | 選取body下前兩個div節點 |
| xpath(‘/body/div[@class]’) | 選取body下帶有class屬性的div節點 |
| xpath(‘/body/div[@class=”main”]’) | 選取body下class屬性為main的div節點 |
| xpath(‘/body/div[price>35.00]’) | 選取body下price元素值大于35的div節點 |
?三、通配符
Xpath通過通配符來選取未知的XML元素
| 表達式 | 結果 |
| xpath(’/div/*’) | 選取div下的所有子節點 |
| xpath(‘/div[@*]’) | 選取所有帶屬性的div節點 |
?四、取多個路徑
使用“|”運算符可以選取多個路徑
| 表達式 | 結果 |
| xpath(‘//div|//table’) | 選取所有的div和table節點 |
五、Xpath軸
軸可以定義相對于當前節點的節點集
| 軸名稱 | 表達式 | 描述 |
| ancestor | xpath(‘./ancestor::*’) | 選取當前節點的所有先輩節點(父、祖父) |
| ancestor-or-self | xpath(‘./ancestor-or-self::*’) | 選取當前節點的所有先輩節點以及節點本身 |
| attribute | xpath(‘./attribute::*’) | 選取當前節點的所有屬性 |
| child | xpath(‘./child::*’) | 返回當前節點的所有子節點 |
| descendant | xpath(‘./descendant::*’) | 返回當前節點的所有后代節點(子節點、孫節點) |
| following | xpath(‘./following::*’) | 選取文檔中當前節點結束標簽后的所有節點 |
| following-sibing | xpath(‘./following-sibing::*’) | 選取當前節點之后的兄弟節點 |
| parent | xpath(‘./parent::*’) | 選取當前節點的父節點 |
| preceding | xpath(‘./preceding::*’) | 選取文檔中當前節點開始標簽前的所有節點 |
?
| preceding-sibling | xpath(‘./preceding-sibling::*’) | 選取當前節點之前的兄弟節點 |
| self | xpath(‘./self::*’) | 選取當前節點 |
?
六、功能函數???
使用功能函數能夠更好的進行模糊搜索
| 函數 | 用法 | 解釋 |
| starts-with | xpath(‘//div[starts-with(@id,”ma”)]‘) | 選取id值以ma開頭的div節點 |
| contains | xpath(‘//div[contains(@id,”ma”)]‘) | 選取id值包含ma的div節點 |
| and | xpath(‘//div[contains(@id,”ma”) and contains(@id,”in”)]‘) | 選取id值包含ma和in的div節點 |
| text() | xpath(‘//div[contains(text(),”ma”)]‘) | 選取節點文本包含ma的div節點 |
| ? | ? | ? |
scrapy xpath文檔:http://doc.scrapy.org/en/0.14/topics/selectors.html
轉載于:https://www.cnblogs.com/PeterZhang1520389703/p/8193465.html
總結
以上是生活随笔為你收集整理的Python爬虫:Xpath语法笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【uoj#225】[UR #15]奥林匹
- 下一篇: Scala中集合类型与java中集合类型