基础三大类
- 层级:
//
跳级,/
直接子类,..
上一级 - 属性:
@
属性访问 - 函数:
text()
获取文字,@href
获取href属性值
使用方法
# 获取 含有 class="nav" 的 div 标签下的文本
//div[@class="nav"]/text()
# 获取 <div id="link">...</div> ——> ul ——> li ——> a 的 title 属性
//div[@id="link"]/ul/li/a/@title
# 获取 <div id="link">...</div> ——> ul ——> 第二个li ——> a 的 href 属性
//div[@id="link"]/ul/li[2]/a/@href
测试代码
from lxml import etree text = """ <div class="wrapper"> <div class="nav">新浪微博</div> <div id="link"> <ul id=""> <li><a href="#" title="国内">国内</a></li> <li><a href="#" title="国际">国际</a></li> <li><a href="#" title="军事">军事</a></li> </ul> </div> </div> """ # 创建html对象 html = etree.HTML(text) # 获取 含有 class="nav" 的 div 标签下的文本 results = html.xpath('//div[@class="nav"]/text()') print(results) # 获取 <div id="link">...</div> ——> ul ——> li ——> a 的 title 属性 results2 = html.xpath('//div[@id="link"]/ul/li/a/@title') print(results2) # 获取 <div id="link">...</div> ——> ul ——> 第二个li ——> a 的 href 属性 results3 = html.xpath('//div[@id="link"]/ul/li[2]/a/@href') print(results3)
运行结果
['新浪微博']
['国内', '国际', '军事']
['#']
版权声明:《 lxml 模块的 XPath基础语法 》为明妃原创文章,转载请注明出处!
最后编辑:2019-11-27 03:11:28