示例
from lxml import html
def parse():
""" 将html文件中的内容,使用xpath进行提取 """
# 读取文件中的内容
f = open('./static/index.html', 'r', encoding='utf-8')
s = f.read()
selector = html.fromstring(s)
# 解析H3标题
h3 = selector.xpath('/html/body/h3/text()')
print(h3)
print(h3[0])
# 解析ul下面的内容
# ul = selector.xpath('/html/body/ul/li')
ul = selector.xpath('//ul/li')
print(len(ul))
for li in ul:
print(li.xpath('text()')[0])
# 解析ul指定的元素值
ul2 = selector.xpath('/html/body/ul/li[@class="important"]/text()')
print(ul2)
# 解析a标签的内容
a = selector.xpath('//div[@id="container"]/a/text()')
# 标签内的内容
print(a[0])
# href属性
alink = selector.xpath('//div[@id="container"]/a/@href')
print(alink[0])
# 解析P标签
p = selector.xpath('/html/body/p[last()]/text()')
print(len(p))
print(p[0])
test = selector.xpath('/html/body/ul/li[3]/text()')
print(test[0])
f.close()
if __name__ == '__main__':
parse()
结果 :
['标题']
标题
5
内容1
内容2
内容3important
内容4
内容5
['内容3important']
跳转到百度首页
http://www.baidu.com
1
最后一段文字
内容3important
- html结构
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>网页测试</title>
<link rel="stylesheet" href="">
</head>
<body>
<h3>标题</h3>
<ul>
<li>内容1</li>
<li>内容2</li>
<li class="important">内容3important</li>
<li>内容4</li>
<li>内容5</li>
</ul>
<div>
内容未知
</div>
<p>
段落内容 from p
</p>
<div id="container">
段落文字
<a href="http://www.baidu.com" title="超链接">跳转到百度首页</a>
<p class="content">
区块内容1
</p>
<p class="content">
区块内容2
</p>
<p class="content">
区块内容3
</p>
<p class="content">
区块内容4
</p>
<p class="content-block">
区块内容5 from block
</p>
<p class="block-content">
区块内容6 末尾内容
</p>
</div>
<p>
最后一段文字
</p>
</body>
</html>
//
是代表所有的意思/
是从根路径开始