# xpath選擇器的使用
html_str = """
這是乙個塊標籤
**網qq網一段文字
二段文字
三段文字
11段文字
22段文字
666哈哈哈
"""# xpath也是基於lxml實現對網頁源**的解析
from lxml.html import etree
# 將html源**,解析成為乙個文件樹物件。
# parser: 給這次解析,通過一些配置。
obj = etree.html(html_str, parser=etree.htmlparser(encoding='utf8'))
# # print(type(obj))
# # print(obj)
# 獲取title標籤
# //:xpath路徑語法,表示在obj中的任意位置查詢title標籤。
title = obj.xpath('//title/text()')
print(title)
# 獲取div下id='one'的a標籤
# /: 表示div內部的直接子標籤,不包含後代標籤。
# xpath()方法返回的是乙個list列表
a_ele = obj.xpath('//div/a[@id="one"]')[0]
print(a_ele)
# 在a這個element物件的基礎上,再獲取href屬性及文字內容。
# ./: 表示在當前元素上,查詢內容
txt = a_ele.xpath('./text()')[0]
href = a_ele.xpath('./@href')[0]
name = a_ele.xpath('./@name')[0]
# name = a_ele.xpath('./@id')
# name = a_ele.xpath('./@href')
# name = a_ele.xpath('./@class')
print('*****==',href, txt, name)
# a_ele = obj.xpath('//div/a[@id="one"]/@href')[0]
# 獲取class屬性值包含多個的標籤
a = obj.xpath('//div/a[@class="second one three"]/text()')[0]
# print(a)
# contains()用來查詢屬性中包含某乙個值。
a = obj.xpath('//div/a[contains(@class, "second")]/text()')[0]
# print(a)
# startswith()/endswith()
p = obj.xpath('//div/section/p[starts-with(@id, "content_id_")]/text()')
print(p)
# p = obj.xpath('//div/section/p[ends-with(@id, "_haha")]/text()')
# print(p)
# 獲取div下所有標籤的文字內容
# a = obj.xpath('//div//text()')
# print(a)
# p_obj = obj.xpath('//div/section/p[5]/text()')
p_obj = obj.xpath('//div/section/p[last()]/text()')
print(p_obj)
# 支援and/or多條件查詢
a = obj.xpath('//div/a[@id="one" and @name="aa"]/@href')
print(a)
xpath常用基礎語法
xpath是xml路徑語言,用來確定xml文件中某部分位置的語言,所以我們可以通過xpath來獲取頁面html檔案中的物件節點,對其進行操作 下面介紹一下xpath的常用表示式 nodename 選用該元素 從根節點擊取元素 選取文件中的節點,而不考慮他們的位置 選取當前節點 選取當前節點的父節點 ...
爬蟲基礎 XPath語法總結
xpath xml path language 是一門在 xml 文件中查詢資訊的語言,可用來在 xml 文件中對元素和屬性進行遍歷。w3school官方文件 開源的xpath表示式編輯工具 xmlquire xml格式檔案可用 chrome外掛程式 xpath helper firefox外掛程式...
XPath 簡單語法
xpath 是xml的查詢語言,和sql的角色很類似。以下面xml為例,介紹xpath 的語法。empire burlesque bob dylan 10.90 hide your heart bonnie tyler 9.90 greatest hits dolly parton 9.90 定位節...