xpath 是一門在 xml 文件中查詢資訊的語言。
#xpath: xpath 是一門在 xml 文件中查詢資訊的語言
#/ :從根節點擊取。
#// :不管位置,直接找
#/@屬性名
#/text()
#會複製()
#pip3 install lxml
doc = '''總結:name: my image 1
name: my image 2
name: my image 3
name: my image 4
name: my image 5
test
name: my image 6
'''from lxml import
etree
html =etree.html(doc)
#html=etree.parse('search.html',etree.htmlparser())
#1 所有節點
#a=html.xpath('//*') # 乙個物件列表
#2 指定節點(結果為列表)
#a=html.xpath('//head')
#3 子節點,子孫節點
#a = html.xpath('//div/a')
#a = html.xpath('//body/a') # 無資料
#a = html.xpath('//body//a')
#4 父節點(..表示父節點)
#a = html.xpath('//body//a[@href="image1.html"]/..')
#a = html.xpath('//body//a[1]/..')
#也可以這樣
#a = html.xpath('//body//a[1]/parent::*')
#5 屬性匹配
#a = html.xpath('//body//a[@href="image1.html"]')
#6 文字獲取(重要) /text() 取當前標籤的文字
#a = html.xpath('//body//a[@href="image1.html"]/text()')
#a = html.xpath('//body//a/text()')
#7 屬性獲取 @href 取當前標籤的屬性
#a = html.xpath('//body//a/@href')
## 注意從1 開始取(不是從0)
#a = html.xpath('//body//a[1]/@href')
#8 屬性多值匹配
#a 標籤有多個class類,直接匹配就不可以了,需要用contains
#a = html.xpath('//body//a[@class="li"]') # class有多個類,xpath這樣寫就取不到了,得像下面兩個
#a = html.xpath('//body//a[contains(@class,"li")]')
#a = html.xpath('//body//a[contains(@class,"li")]/text()')
#9 多屬性匹配
#a = html.xpath('//body//a[contains(@class,"li") or @name="items"]')
#a = html.xpath('//body//a[contains(@class,"li") and @name="items"]/text()')
#a = html.xpath('//body//a[contains(@class,"li")]/text()')
#10 按序選擇
#a = html.xpath('//a[2]/text()')
#a = html.xpath('//a[2]/@href')
#取最後乙個
#a = html.xpath('//a[last()]/@href')
#位置小於3的
#a = html.xpath('//a[position()<3]/@href')
#倒數第二個
#a = html.xpath('//a[last()-2]/@href')
#11 節點軸選擇
#ancestor:祖先節點
#使用了* 獲取所有祖先節點
#a = html.xpath('//a/ancestor::*')
## 獲取祖先節點中的div
#a = html.xpath('//a/ancestor::div')
#attribute:屬性值
#a = html.xpath('//a[1]/attribute::*')
#a = html.xpath('//a[1]/@aa')
#child:直接子節點
#a = html.xpath('//a[1]/child::*')
#a = html.xpath('//a[1]/child::img/@src')
#descendant:所有子孫節點
#a = html.xpath('//a[6]/descendant::*')
#a = html.xpath('//a[6]/descendant::h5/text()')
#following:當前節點之後所有節點(兄弟節點和兄弟內部的節點)
#a = html.xpath('//a[1]/following::*')
#a = html.xpath('//a[1]/following::*[1]/@href')
#following-sibling:當前節點之後同級節點(只找兄弟)
#a = html.xpath('//a[1]/following-sibling::*')
#a = html.xpath('//a[1]/following-sibling::a')
#a = html.xpath('//a[1]/following-sibling::*[2]')
#a = html.xpath('//a[1]/following-sibling::*[2]/@href')
#print(a)
#/#關於節點的路徑//#/@屬性名
#/text()
以後去查詢標籤,bs4的find, css,xpath(通用的)
爬蟲 css選擇器 和 xpath選擇器
ret soup.select my p ret soup.select body p 子子孫孫 ret soup.select body p 直接子節點 兒子 ret soup.select body p 0 text 直接子節點 兒子 xpath xpath 是一門在 xml 文件中查詢資訊的語...
XPATH選擇器介紹
xpath全文叫 xml path language xml路徑語言 從xpath的視角來看,xml 或html文件就是檔案系統結構,元素節點可以看做其中某乙個檔案 在html文件中,以html標籤作為根節點,整個文件的形式可以看成是乙個樹形結構 xpath比css多一點功能,比如前向兄弟選擇器,父...
Xpath 轉 JQuery 選擇器
最近在寫採集時使用 php querylist 發現選擇器可以這樣的步驟生成 使用瀏覽器工具 檢視 採集節點的 xpath 值 例如 id form1 div 3 table 3 tbody tr td 2 table 2 tbody tr td table tbody tr td table 2 ...