xpath基礎知識點

2021-09-23 17:23:07 字數 2652 閱讀 1870

from lxml import etree

text="""

新華書店

harry potter

29.99

learning xml

39.95

python 大全

99.95

"""

#將字串物件轉換為xml物件才可以使用xpath

html_xml = etree.html(text)

print(html_xml)

#1 獲取所有的book標籤

result1=html_xml.xpath("//book")

print(result1)

#2獲取第乙個book標籤

first_book=result1[0]#返回第乙個book標籤,型別是xml可以在此基礎上用xpath

print(first_book)

print(type(first_book))

#3 獲取第一本書當前節點的href屬性

#兩個斜槓表示全域性查詢,從bookstore開始

#/ 表示從從bookstore開始,但是不能全域性查詢

#.表示當前標籤下進行查詢

f

irst_href=first_book.xpath("//@href")#直接使用first_book作為根節點

print(first_href)

#4 獲取first_book節點的父節點的下面的所有book節點的href

#…表示當前節點的父節點

href_list=first_book.xpath("..//book/@href")

print(href_list)

#5獲取**小於40的書名

book_name=html_xml.xpath("//book[price<40]/title/text()")

print(book_name)

#6獲取**等於99.95的書

book_name=html_xml.xpath("//book[price=99.95]/title/text()")

print(book_name)

#7 獲取book標籤中的title標籤和price標籤

| 表示只要符合乙個,就可以返回,是或者的關係

result2=html_xml.xpath("//book/title|//book/price")

print(result2)

print(len(result2))

#8 獲取href含有baidu字元的book標籤 然後獲取此標籤的書名

#contains表示包含

print(result3)#9獲取bookstore前兩本書的書名

#position表示位置從1開始

result4=html_xml.xpath('//book[position()<3]/title/text()')

print(result4)

#10 匹配所有節點屬性

#* 表示任何屬性

result5=html_xml.xpath("//@*")

print(result5)

#11 獲取所有有屬性的title標籤並且獲取文字資訊

#[@*] 修飾title,表示含有屬性

result6=html_xml.xpath("//title[@*]/text()")

print(result6)

#12 獲取href=的book節點,在此基礎上再獲取book後面的兄弟book節點。獲取他們的書名

esult7=html_xml.xpath("//book[@href='']/following-sibling::book/title/text()")

print(result7)

13獲取href=的book節點,在此基礎上再獲取book後面的兄弟book,href=""節點。獲取他們的書名

result8=html_xml.xpath("//book[@href='']/following-sibling::book[@href='']/title/text()")

print(result8)

#14 使用child獲取所有的書名

result9=html_xml.xpath("//book/child::title/text()")

print(result9)

#15 從title出發,獲取最後的書名

result10=html_xml.xpath("//title/ancestor::bookstore/book[last()]/title/text()")

print(result10)

基礎知識點

1 inline block布局 2 table布局 3 justify的末行不對齊 4 兩個圖示之間有空格 換行 5 背景中的的 路徑的 全部斜槓都為 不是 命令列下的這種 doctype html html head meta charset utf 8 title xx title head ...

XPath基礎知識

1.xpath中的符號 符號 說明 示例 示例說明 表示從根節點開始選擇 pets 選擇根節點 pets 表示節點和子節點之間的間隔符 pets dog 選擇 pets 節點下的 dog節點 xx 表示從整個 xml文件中查詢,而不考慮當前節點位置 price 選擇文件中所有的 price節點 單個...

爬蟲知識點(xpath)

xpath xml path language 是一門在 xml 文件中查詢資訊的語言,可用來在 xml 文件中對元素和屬性進行遍歷。w3school官方文件 開源的xpath表示式編輯工具 xmlquire xml格式檔案可用 chrome外掛程式 xpath helper firefox外掛程式...