Xpath解析資料

2021-10-21 04:15:16 字數 1587 閱讀 8556

xpath,xml path language。是一種小型的查詢語言,是一門在xml文件中查詢的語言。

優點:可以在xml中查詢資訊;支援html的查詢;可通過元素和屬性進行導航。

xpath的樹形結構

使用xpath選取節點

表示式描述nodename

選取此節點的所有子節點

/從根節點擊擇

//從匹配選擇的當前節點擊擇文件中的節點,而不考慮它們的位置

.選取當前節點

…選取當前節點的父節點

/text()

獲取當前路徑下的文字內容

/@***

獲取當前路徑下標籤的屬性值

|可選符:可選取若干個路徑//p|//div,在當前路徑下選取所有符合條件的p標籤和div標籤

表示式描述

xpath(』/body/div[1]』)

選取body下第乙個div節點

xpath(』/body/div[last()]』)

選取body下最後乙個div節點

xpath(』/body/div[last(-1)]』)

選取body下倒數第二個div節點

xpath(』/body/div[position()<4]』)

選取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節點

案例:爬樹**樓首頁**和作者

import requests

from lxml import etree

url =

""headers =

resp = requests.get(url, headers=headers)

resp.encoding =

'gbk'

e = etree.html(resp.text)

# 型別轉換 將str型轉換成

# print(type(e))

names = e.xpath(

'//div[@class="wl"]/ul[@class="sortimg"]/li/p/a/text()'

)authors = e.xpath(

'//div[@class="wl"]/ul[@class="sortimg"]/li/a/b/text()'

)for name, author in

zip(names,authors)

:print

(name+

":"+author)

xpath解析出現亂碼 解決方

解析資料 正則,xpath

正規表示式拆分 importre 1.拆分字串 one asdsfsgsh 標準 是 s 為拆分 pattern re.compile s result pattern.split one print result 2.匹配中文 two 網頁是最新版本的,適配移動端 python中 匹配中問 a z...

xpath解析基礎

import requests from lxml import etree if name main headers ua偽裝 例項化好了乙個etree物件,且將被解析的檔案載入到了物件中 tree etree.parse test.html r tree.xpath html body div ...

xpath解析基礎

xpath解析 最常用且最便捷高校的一種解析方式。通用性。xpath解析原理 1.例項化乙個etree的物件,且需要將被解析的頁面原始碼資料載入到該物件中。2.呼叫etree物件中的xpath方法結合著xpath表示式實現標籤的定位和內容的捕獲。環境的安裝 pip install lxml 如何例項...