1.xpath
1.1 基本概念
- XPath(XML Path Language)是⼀种XML的查询语⾔,他能在XML树状结构中寻找节点。XPath 用于在XML文档中通过元素和属性进行导航
- xml是⼀种标记语法的文本格式,xpath可以⽅便的定位xml中的元素和其中的属性值。lxml是python中的⼀个包,这个包中包含了将html⽂本转成xml对象,和对对象执行xpath的功能
1.2 节点的关系
xml_content = '''
<html>
<head>
<title>Title</title>
</head>
<body>
<span1 class=" ">Span1</span1>
<span2 class=" ">Span2</span2>
<span3 href =" ">Span3</span3>
</body>
</html>
'''
在上面的XML文档中
- 文档节点:<html>,<head>,<body>
- 元素节点:<title>Title</title> ,<span1 class=" ">Span1</span1>等
- 属性节点:class=" “,href =” "
- 子节点:内部不再存在元素节点的节点,例如:title,span1,span2,span3,span4
- 父节点:内部还存在元素节点的节点,例如:head,body
- 同胞:共同属于同一父节点的子节点,例如:span1,span2,span3,span4
- 先辈:指子节点的父节点以及父节点的父节点,例如:html,head,body
2.基本使用
2.1 工具安装
常用节点选择工具:
- chrome插件XPath Helper
- Firefox插件XPath Checke
XPath Helper常用表达式
表达式 | 功能 |
---|---|
nodename | 选取根节点nodename的所有子节点 |
/ | 从根节点进行选取 |
// | 从文档中匹配所有选择节点 |
. | 选取当前节点 |
.. | 选取当前节点的父节点 |
@ | 选取属性 |
查找某个特定的节点或者包含某个指定的值的节点
路径表达式 | 结果 |
---|---|
/html/head/title | 选取title节点 |
/html/body[1] | 选取span1节点 |
/html/body[last()] | 选取span3节点 |
//span1[@class=" "] | 选取class=" "的span1节点 |
2.2 模块的使用
- 在Python中,我们安装lxml库来使⽤XPath 技术
- lxml 是 ⼀个HT