1.xpath
1.1 xpath介绍
- XPath(XML Path Language)是⼀种XML的查询语⾔,他能在XML树状结构中寻找节点。XPath ⽤于在 XML ⽂档中通过元素和属性进⾏导航
- xml是⼀种标记语法的⽂本格式,xpath可以⽅便的定位xml中的元素和其中的属性值。lxml是python中的⼀个包,这个包中包含了将html⽂本转成xml对象,和对对象执⾏xpath的功能
1.2 xpath节点关系
xml_content = '''
<bookstore>
<book>
<title lang='eng'>Harry Potter</title>
<author>K.Rowing</author>
<year>2005</year>
<price>29<price>
</book>
</bookstore>'''
<bookstore> :文档节点
<year>2005</year> :元素节点
lang='eng' :属性节点
⽗(Parent) book元素是title、author、year、price元素的⽗
⼦(Children) title、author、year、price都是book元素的⼦
同胞(Sibling) title、author、year、price都是同胞
2.基本使用
2.1 工具安装
- chrome 插件 xpath helper
- filefox 插件 xpath helper
表达式 | 描述 |
---|---|
nodename | 选取此节点内的所有子节点 |
/ | 根节点 |
// | 从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置 |
. | 选取当前节点 |
.. | 选取当前节点的父节点 |
@ | 选取属性 |
查找某个特定的节点或者包含某个指定的值的节点
路径表达式 | 结果 |
---|---|
/bookstore/book[1] | 选取属于bookstore子元素的第一个book元素 |
/bookstore/book[last()] | 选取属于bookstore子元素的第后一个book元素 |
/bookstore/book[last()-1] | 选取属于bookstore子元素的倒数第2个book元素 |
/bookstore/book[position()<3] | 条件限定,选择最前面的2个book元素 |
/title[@lang] | 选取所有拥有名为lang属性的title元素 |
/title[@lang=‘eng’] | 选取lang属性为‘eng’的title元素 |
/bookstore/book[price>35.00] | 选取所有价格大雨35的book元素 |
2.2 模块的使用
- 安装 pip install lxml
- 使用
from lxml import etree
- 作用:
a.把html字符串转化为element对象
b.把element对象转化为字符串或者二进制类型
网友评论