from lxml import etree
html = '''
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>
<ul>
<li class="class1"><a href="class1.html">1</a><>
<li class="class2"><a href="class2.html">2</a><>
<li class="class3"><a href="class3.html">3</a><>
<li class="class4"><a href="class4.html">4</a><>
<li class="class5"><a href="class5.html">5</a><>
<li>
<ul>
<li class="class1"><a href="class6.html">6</a><>
<li class="class7"><a href="class7.html">7</a><>
<li class="class8"><a href="class8.html">8</a><>
</ul>
<>
</ul>
<div>
</body>
<ml>
'''
# 解析页面
html = etree.HTML(html)
#
# 取根节点
a = html.xpath('/html')
print(a)
# 取任意一个位置ul的节点内容
a1 = html.xpath('//ul')
print(a1)
# 取的是html/body/div下面紧接着的ul节点内容
a2 = html.xpath('/html/body/div/ul')
print(a2)
for i in a1:
print(i)
print(i.xpath('li'))
print(i.xpath('li/a'))
# text()取a标签中的值
print(i.xpath('li/a/text()'))
# @ 取属性
print(i.xpath('li/a/@href'))
# 取任意一个位置,且class属性为class1de标签内容
a3 = html.xpath('//*[@class="class1"]')
print(a3)
for i in a1:
print(i)
# . 表示当前节点内容
print(i.xpath('.'))
print('--------------------------------------------------------')
# .. 表示上一个节点内容
print(i.xpath('..'))
print('-----------------------------------')
print(i.xpath('../..'))
# 第一个ul下的第三个li节点内容
a4 = html.xpath('/html/body/div/ul/li[3]/a/text()')
a5 = html.xpath('//*[@class="class3"]/a/text()')
print(a4)
print(a5)
XPath
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 什么是xpath? xpath(XML path language)是一门在XML文档中查找的语言,可用来在XML...
- 什么是XPath? XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可...
- 什么是XPath? XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可...