1爬虫第一天xpath
1.xpath简介:
xpath节点是xpath中的专业术语,是某些特性或者属性的总称。总共包含7中类型·:元素、属性、文本、命名空间、处理指令、注释以及文档节点等。在xml文档中根节点或者文档节点被形容为数的根。
<?xml version ='1.0' encoding='utf-8'> <bookstore> <book> <title lang="1234">Haryybooot</title> <author>jkworn</author> <year>2004</year> <price>30</price> </book> </bookstore>
1.节点分析:
<bookstore> 被称为数的跟或者文档节点
<title lang="1234">Haryybooot</title>被称为元素节点
lang="1234"被称为属性节点
2.关系分析:节点之间存在父亲(parent)、儿子(children)、同胞(sibling)、父亲的父亲。。。。、儿子的儿子/。。。。
其中book是title、author、price的父亲,title、author、price又是同胞的兄弟,title的父亲的父亲是bookstore
2.xpath 语法:
1.xpath 是使用路径来表达选取xml文档的节点或者节点集的,节点是通过沿着path或者step来进行选取的:
<?xml version ='1.0' encoding='utf-8'> <bookstore> <book> <title lang="1234">Haryybooot</title> <author>jkworn</author> <year>2004</year> <price>30</price> </book> <book> <title wusir="1234">hejijkji</title> <author>alex</author> <year>2004</year> <price>30</price> </book> </bookstore>
2.路径表达式:
nodename | 选取此节点的所有子节点 |
/ | 从根节点选取 |
// | 从匹配选择的当前节点选择文档中的节点而不考虑他们的位置 |
. | 选取当前节点 |
.. | 选取当前节点的父节点 |
@ | 选取属性 |
3.实例讲述:
bookstore 选取bookstore元素的所有子节点
/bookstore 选取根元素bookstore
bookstore/book 选取属于bookstore的子元素的book所有元素
//book 选取所有book元素
bookstore//book 选择属于bookstore 元素后代的所有book元素,不管它位于bookstore的什么位置
//@lang 选取名为lang的所有属性
4.在进行查询的时候有时候我们需要某个特定的标签这个时候我们需要进行元素的准确定位:
bookstore/book[1] 选取属于bookstore的子元素的book的第一个元素
bookstore/book [last()-1] 选取属于bookstore的子元素的book倒数第二个元素
·· bookstore/book [position<3] 选取属于bookstore的子元素的book第一个和第二个元素
//title[@lang] 选取拥有属性名为lang的title元素
//title[@lang='eng'] 选取所有的title元素并且拥有属性为lang值为eng的所有节点
/bookstore/book[price>30] 选取bookstore下所有book元素并且price元素的值必须大于30
5.选取·位置节点:
* 匹配所有的·节点
@* 匹配所有的属性节点
node() 匹配任何类型的节点
6.在进行文件获取的时候有时候我们需要后去多个文件的信息我们这个时候就可以使用 |
//book/title| //book/price 选取book元素下所有的title和price元素
7.轴:可以用于定义当前节点的节点集:
1.attribute 选取当前节点的所有属性
2.child 选取当前节点的所有子元素
3.following 选取当前节点后的所有同胞的所有节点
4.parent 选取当前节点的所有父节点
3.实例介绍:使用