此html页面是为方便解释xpath的基本功能而写的,代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title></title>
</head>
<body>
<ul>
<li id="1" class="c">北京</li>
<li id="2">上海</li>
<li id="l1">深圳</li>
<li id="l2">武汉</li>
</ul>
<ul>
<li>大连</li>
<li>荆州</li>
<li>沈阳</li>
</ul>
</body>
</html>
下面是xpath的基本使用:
from lxml import etree
# xpath解析
# 1、本地文件 etree.parse
# 2、服务器响应的数据 response.read().decode('utf-8') etree.HTML()
# xpath解析本地文件
tree = etree.parse('xpath的基本使用.html')
tree.xpath('xpath路径')
# 查找所有带有id的属性的li标签
li_list = tree.xpath('//ul/li[@id]/text()')
# 查找具体id值的标签 注意引号的问题
li_list = tree.xpath('//ul/li[@id="1"]/text()')
# 查找id为1的class的属性值
li_list = tree.xpath('//ul/li[@id=“1”]/@class')
# 查找id中包含l的li标签
li_list = tree.xpath('//ul/li[contains(@id,"l")]/text()')
# 查询id的值以l开头的li标签
li_list = tree.xpath('//ul/li[starts-with(@id,"l")]/text()')
# 查找ul下面的li
li_list = tree.xpath('//body/ul/li')
# 判断列表的长度
print(li_list)
print(len(li_list))