XPath的簡單介紹以及使用

2021-08-21 01:35:58 字數 2288 閱讀 5813

xpath 是一門在 xml 文件中查詢資訊的語言。xpath它可以用來在 xml 文件中對元素和屬性進行遍歷。

要使用xpath首先需要安裝lxml,在終端輸入如下命令即可:pip install lxml

什麼是xpath?

首先先來介紹下xml,它是用來儲存和傳輸資料使用的。

和html的不同有以下的兩點:

(1)html用來顯示資料,xml是用來傳輸資料

(2)html標籤是固定的,xml標籤是自定義的

xpath用來在xml中查詢指定的元素,它是一種路徑表示式

常用的路徑表示式:

// : 不考慮位置的查詢

./ : 從當前節點開始往下查詢

@ : 選取屬性

示例如下:

/bookstore/book :選取根節點bookstore下面所有直接子節點book

//book :選取所有book

bookstore//book :查詢bookstore下面所有的book

/bookstore/book[1] :bookstore裡面的第乙個book

/bookstore/book[last()] :bookstore裡面的最後乙個book

/bookstore/book[position()<3] :前兩個book

//title[@lang]: 所有的帶有lang屬性的title節點

//title[@lang='eng']  所有的lang屬性值為eng的title節點

* : 任何元素節點

為了使用xpath大致查詢頁面上滿足條件的部分

可以在瀏覽器上安裝xpath外掛程式:只需要將xpath外掛程式拖動到谷歌瀏覽器擴充套件程式中即可。

啟動和關閉外掛程式的命令ctrl +: shift + x

(1)通過屬性進行定位

//input[@id="kw"]

//input[@class="bg s_btn"]

(2) 層級定位

索引定位

//div[@id="head"]/div/div[2]/a[@class="toindex"]

【注】索引從1開始

//div[@id="head"]//a[@class="toindex"]

【注】雙斜槓代表下面所有的a節點,不管位置

邏輯運算

//input[@class="s_ipt" and @name="wd"]

模糊匹配

contains

//input[contains(@class, "s_i")]

所有的input,有class屬性,並且屬性中帶有s_i的節點

//input[contains(text(), "愛")]

starts-with

//input[starts-with(@class, "s")]

所有的input,有class屬性,並且屬性以s開頭

取文字//div[@id="u1"]/a[5]/text()  獲取節點內容

//div[@id="u1"]//text()      獲取節點裡面不帶標籤的所有內容

取屬性

//div[@id="u1"]/a[5]/@href

在**中進行使用方法如下

from lxml import etree

兩種方式使用:將html文件變成乙個物件,然後呼叫物件的方法去查詢指定的節點

(1)本地檔案

tree = etree.parse(檔名)

(2)網路檔案

tree = etree.html(網頁字串)

ret = tree.xpath(路徑表示式)

注意:ret是乙個列表

#將所用滿足條件的內容進行拼接起來形成string

ret = tree.xpath('//div[@class="**"]')

string = ret[0].xpath('string(.)')

print(string.replace('\n', '').replace('\t', ''))

XPath簡單介紹

一 xpath即為xml路徑語言,它是一種用來確定xml 標準通用標記語言的子集 文件中某部分位置的語言。xpath基於xml的樹狀結構,提供在資料結構樹中找尋節點的能力,被開發者採用來當作小型查詢語言。1 在 xpath 中,有七種型別的節點 元素 屬性 文字 命名空間 處理指令 注釋以及文件 根...

爬蟲xpath介紹以及基本用法

import requests from lxml import etree text html etree.html text 將上述字串解析為html文件,構造xpath的解析物件 result etree.tostring html 這裡是將html文件進行完成的修正 print result...

LESS命令簡單介紹以及使用

less命令簡單介紹以及使用 b 緩衝區大小 設定緩衝區的大小 e 當檔案顯示結束後,自動離開 f 強迫開啟特殊檔案,例如外圍裝置代號 目錄和二進位制檔案 i 忽略搜尋時的大小寫 m 顯示類似more命令的百分比 n 顯示每行的行號 o 檔名 將less 輸出的內容在指定檔案中儲存起來 q 不使用警...