b.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>Title</title>
</head>
<body>
<ul>
<li><a href="http://www.baidu.com">百度</a></li>
<li><a href="http://www.google.com">Google</a></li>
<li><a href="http://www.sogou.com">搜狗</a></li>
</ul>
<ol>
<li><a href="feiji">飞机</a></li>
<li><a href="dapao">大炮</a></li>
<li><a href="huoche">火车</a></li>
</ol>
<div class="job">李嘉诚</div>
<div class="common">胡辣汤</div>
</body>
</html>
from lxml import etree
tree =etree.parse('b.html')
result1 = tree.xpath('/html/body/ul/li/a/text()') # 获取所有a标签文本 ,打印:['百度', 'Google', '搜狗']
result2 = tree.xpath('/html/body/ul/li[1]/a/text()') # li[1]代表获取第一个li标签,xpath下标从1开始
print(result2) # 打印:['百度']
# 获取ol标签下a标签的属性href='feiji'的文本内容
result3 = tree.xpath('/html/body/ol/li/a[@href="feiji"]/text()') # [@xxx=xxx]是对属性进行筛选
print(result3) # 打印:飞机
# 获取ol/li下a标签的文本
ol_li_list = tree.xpath('/html/body/ol/li')
for li in ol_li_list:
result4 = li.xpath('./a/text()') # “./”代表当前路径,定位到li这级
print('result4',result4) # 分别输出a标签下的:[飞机],[大炮],[火车]
# 获取/html/body/ol/li下a标签的属性href的值
ol_li_list2 = tree.xpath('/html/body/ol/li')
for i in ol_li_list2:
result5 = i.xpath('./a/@href') # "@href"可以输出对应的属性名称
# 这里全路径也可以用:/html/body/ol/li/a/@href
print(result5) # 这里分别打印:[feji],[dapao],[huoche]
谷歌浏览器快速定位路径的方法:

1076

被折叠的 条评论
为什么被折叠?



