爬虫之数据提取方法(二、xpath提取)

爬虫之数据提取方法(二、xpath提取)

2023年6月29日发(作者:)

爬⾍之数据提取⽅法(⼆、xpath提取)⽬录数据提取之xpath1 为什么要学习xpath和lxmllxml是⼀款⾼性能的 Python HTML/XML 解析器,我们可以利⽤XPath,来快速的定位特定元素以及获取节点信息2 什么是xpathXPath (XML Path Language) 是⼀门在 HTMLXML ⽂档中查找信息的语⾔,可⽤来在 HTMLXML ⽂档中对元素和属性进⾏遍历。W3School官⽅⽂档:3 认识xml知识点:html和xml的区别xml中各个元素的的关系和属性3.1 html和xml的区别3.2 xml的树结构 Everyday Italian

Giada De Laurentiis

2005

30.00

Harry Potter

J K. Rowling

2005

29.99

Learning XML

Erik T. Ray

2003

39.95

上⾯的xml内容可以表⽰为下⾯的树结构上⾯的这种结构关系在xpath被进⼀步细化4 xpath的节点关系知识点:认识xpath中的节点了解xpath中节点之间的关系4.1 xpath中的节点是什么每个XML的标签我们都称之为节点,其中最顶层的节点称为根节点。4.2 xpath中节点的关系5 xpath中节点选择的⼯具Chrome插件 XPath Helper下载地址: 密码:337bFirefox插件 XPath Checker注意: 这些⼯具是⽤来学习xpath语法的,他们都是从elements中匹配数据,elements中的数据和url地址对应的响应不相同,所以在代码中,不建议使⽤这些⼯具进⾏数据的提取6 xpath语法知识点掌握元素路径的相关⽅法掌握获取获取属性的⽅法掌握获取⽂本的⽅法我们将在下⾯的例⼦中使⽤这个 XML ⽂档。 Harry Potter 29.99 Learning XML 39.956.1 选取节点XPath 使⽤路径表达式来选取 XML ⽂档中的节点或者节点集。这些路径表达式和我们在常规的电脑⽂件系统中看到的表达式⾮常相似。使⽤chrome插件选择标签时候,选中时,选中的标签会添加属性class="xh-highlight"下⾯列出了最有⽤的表达式:表达式nodename///.…@text()描述选中该元素。从根节点选取、或者是元素和元素间的过渡。从匹配选择的当前节点选择⽂档中的节点,⽽不考虑它们的位置。选取当前节点。选取当前节点的⽗节点。选取属性。选取⽂本。实例在下⾯的表格中,我们已列出了⼀些路径表达式以及表达式的结果:路径表达式bookstore/bookstorebookstore/book//bookbookstore//book//book/title/@lang//book/title/text()结果选择bookstore元素。选取根元素 bookstore。注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!选取属于 bookstore 的⼦元素的所有 book 元素。选取所有 book ⼦元素,⽽不管它们在⽂档中的位置。选择属于 bookstore 元素的后代的所有 book 元素,⽽不管它们位于 bookstore 之下的什么位置。选择所有的book下⾯的title中的lang属性的值。选择所有的book下⾯的title的⽂本。6.2 查找特定的节点路径表达式//title[@lang=“eng”]/bookstore/book[1]/bookstore/book[last()]/bookstore/book[last()-1]/bookstore/book[position()>1]//book/title[text()=‘Harry Potter’]/bookstore/book[price>35.00]/title结果选择lang属性值为eng的所有title元素选取属于 bookstore ⼦元素的第⼀个 book 元素。选取属于 bookstore ⼦元素的最后⼀个 book 元素。选取属于 bookstore ⼦元素的倒数第⼆个 book 元素。选择bookstore下⾯的book元素,从第⼆个开始选择选择所有book下的title元素,仅仅选择⽂本为Harry Potter的title元素选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须⼤于 35.00。注意点: 在xpath中,第⼀个元素的位置是1,最后⼀个元素的位置是last(),倒数第⼆个是last()-16.3 选取未知节点XPath 通配符可⽤来选取未知的 XML 元素。通配符*@*node()描述匹配任何元素节点。匹配任何属性节点。匹配任何类型的节点。实例在下⾯的表格中,我们列出了⼀些路径表达式,以及这些表达式的结果:路径表达式/bookstore/*//*//title[@*]结果选取 bookstore 元素的所有⼦元素。选取⽂档中的所有元素。选取所有带有属性的 title 元素。6.4 选取若⼲路径通过在路径表达式中使⽤“|”运算符,您可以选取若⼲个路径。实例在下⾯的表格中,我们列出了⼀些路径表达式,以及这些表达式的结果:路径表达式//book/title | //book/price结果选取 book 元素的所有 title 和 price 元素。//title | //price/bookstore/book/title | //price选取⽂档中的所有 title 和 price 元素。选取属于 bookstore 元素的 book 元素的所有 title 元素,以及⽂档中所有的 price 元素。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1687984151a63733.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信