xpath(xml path language)是一門在xml、html文件中查詢資訊的語言,可用來在xml html文件中對元素和屬性進行遍歷
xpath helper 是xpath的開發工具,是一款 chrome 瀏覽器的開發者外掛程式/firefox外掛程式為try xpath,安裝了 xpath helper 後能輕鬆獲取 html元素的 xpath,程式設計師不再需要通過搜尋 html 源**,定位一些 id 去找到對應的位置去解析網頁了
xpath有七種型別的節點:
元素、屬性、文字、命名空間、處理指令、注釋以及文件(根)節點
xml 文件是被作為節點樹來對待的,樹的根被稱為文件節點或者根節點
<?xml version="1.0" encoding="utf-8"?>
>
>
lang
="en"
>
harry pottertitle
>
>
j k. rowlingauthor
>
>
2005year
>
>
29.99price
>
book
>
bookstore
>
(1)上面的xml文件中的節點例子:
>
(文件節點)
>
j k. rowlingauthor
>
(元素節點)
lang="en" (屬性節點)
(2)基本值的例子:j k. rowling"en"
基本值(或稱原子值,atomic value):基本值是無父或無子的節點。
(3)專案(item):專案是基本值或者節點。
(4)節點的關係:
父:每個元素以及屬性都有乙個父。
子:元素節點可有零個、乙個或多個子
同胞:擁有相同的父的節點
先輩:某節點的父、父的父,等等。
後代:某個節點的子,子的子,等等。
xpath 使用路徑表示式來選取 xml 文件中的節點或節點集
節點通過沿著路徑 (path) 或者步 (steps) 來選取
(1)選取結點路徑表示式描述示例
結果nodename
選取此節點的所有子節點
bookstore
選取bookstore下所有的子節點
/如果是在最前面 代表從根節點開始選取 否則選擇某結點下的某個節點
(1)/bookstore(2)bookstore/book
(1)選取根結點下所有的bookstore結點(2)選取bookstore節點下所有的book結點 注釋:假如路徑起始於正斜槓( / ),則此路徑始終代表到某元素的絕對路徑!
//從全域性結點中中選擇節點,隨便在哪個位置
(1)//book (2)bookstore//book
(1)從全域性節點中找到所有的book結點,不管他們在哪個位置(2)選擇 bookstore結點後代中的所有 book結點,不管它們位於 bookstore 之下的什麼位置
@選取某個節點的屬性
(1)//book[@price](2)//@lang
(1)選取所有擁有price屬性的book結點(2)選取名為 lang 的所有屬性
.選取當前節點
..選取當前節點的父節點
(1)查詢book
方法一:html/body/bookstore/book
注意head和body同級的,不是html/head/body/bookstore/book
方法二://book
結果得到兩個book
注意/獲取子節點 //獲取子孫節點
(2)查詢lang屬性
//book/title[@lang="eng"] 選取所有的title結點 且這些節點擁有屬性值為eng的lang屬性
結果得到 harry potter
//book/title[@lang] 選取所有的title結點 且這些節點擁有lang屬性
注意有時候屬性包含了多個值使用contains()函式,如
//title[contains(@lang,'eng')]
(3)上面例子中有兩個book,如果只查詢其中某乙個book 就要用到謂語
特別注意:第乙個下標是從 1 開始 不是從 0 開始
所謂謂語,是用來查詢某個特定的節點或者包含某個指定的值的節點,謂語被嵌在方括號中
/bookstore/book[price>35.00]
選取 bookstore 元素的所有 book 元素,且其中的 price 元素的值須大於 35.00。
/bookstore/book[price>35.00]/title
選取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值須大於 35.00。
(2)謂語/謂詞
(3)萬用字元 *
萬用字元描述示例結果*
匹配任意節點
/bookstore/*
選取bookstore下的所有子元素
@*匹配節點的任意屬性
//book[@*]
選取所有帶有屬性的book元素
(4)運算子
特別注意邏輯或是or
| 是計算兩個節點集 主要用來選取若干路徑 如
//bookstore/book | //book/title
選取所有book元素以及book元素下所有的title元素
資料提取之XPATH
2.資料提取 xpath語法和 lxml模組 xpath是一門在xml和html文件中查詢資訊的語言 原本設計適用於xml的,但xml和html兩者的語法極為相似,所以也可以使用html 谷歌瀏覽器下是xpath 火狐瀏覽器下是try xpath 360瀏覽器下也相容xpath,使用時需要開啟開發者...
Python網路爬蟲 資料提取xpath
xpath,即為xml路徑語言 xmlpathlanguage 它是一種用來確定xml文件中某部分位置的語言。xml和html異同 都是玩標籤,標籤中都有屬性 xml必須為雙標籤,html單雙都可 xml標籤為自定義,html標籤都為內建xpath 使用路徑表示式在 xml 文件中進行導航 xpat...
XPath學習 基本語法 一
xpath是一種路徑語言 xpath 是一門在 xml 文件中查詢資訊的語言。xpath 可用來在 xml 文件中對元素和屬性進行遍歷。xpath 是 w3c xslt 標準的主要元素,並且 xquery 和 xpointer 同時被構建於 xpath 表達之上。推薦乙個挺不錯的 裡面有很不錯的例子...