爬虫之数据提取:xpath语法

爬虫之数据提取:xpath语法

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

爬⾍之数据提取:xpath语法4.数据提取-lxml模块4.1. 了解 lxml模块和xpath语法对html或xml形式的⽂本提取特定的内容,就需要我们掌握lxml模块的使⽤和xpath语法。lxml模块可以利⽤XPath规则语法,来快速的定位HTMLXML ⽂档中特定元素以及获取节点信息(⽂本内容、属性值)XPath (XML Path Language) 是⼀门在 HTMLXML ⽂档中查找信息的语⾔,可⽤来在 HTMLXML ⽂档中对元素和属性进⾏遍历。提取xml、html中的数据需要lxml模块和xpath语法配合使⽤

lxml模块使⽤xpath语法对xml或者html进⾏数据提取xpath可⽤于标签定位并进⾏相关操作知识点:了解 lxml模块和xpath语法

4.2. ⾕歌浏览器xpath helper插件的安装和使⽤4.2.1 ⾕歌浏览器xpath helper插件的作⽤在⾕歌浏览器中对当前页⾯测试xpath语法规则4.2.2 ⾕歌浏览器xpath helper插件的安装和使⽤  参考⽂章分类-- 插件

知识点:了解 ⾕歌浏览器xpath helper插件的安装和使⽤

的节点关系学习xpath语法需要先了解xpath中的节点关系5.1 xpath中的节点是什么每个html、xml的标签我们都称之为节点,其中最顶层的节点称为根节点。我们以xml为例,html也是⼀样的

5.2 xpath中节点的关系

author是title的第⼀个兄弟节点

6. xpath语法-基础节点选择语法1. XPath 使⽤路径表达式来选取 XML ⽂档中的节点或者节点集。2. 这些路径表达式和我们在常规的电脑⽂件系统中看到的表达式⾮常相似。3. 使⽤chrome插件选择标签时候,选中时,选中的标签会添加属性class="xh-highlight"6.1 xpath定位节点以及提取属性或⽂本内容的语法表达式nodename选中该元素。///...@text()从根节点选取、或者是元素和元素间的过渡。从匹配选择的当前节点选择⽂档中的节点,⽽不考虑它们的位置。选取当前节点。选取当前节点的⽗节点。选取属性。选取⽂本。描述6.2 语法练习1. 选中根节点html/html2. 绝对路径选中title节点/html/head/title3. 相对路径选中title节点//title4. 选中当前根节点/html/.5. 选中当前节点(title节点)的⽗节点//title/..6. 获取当前节点(title节点)的⽂本内容//title/text()7. 获取当前节点(link节点)中指定属性的值//link/@href 知识点:掌握 xpath语法-选取节点以及提取属性或⽂本内容的语法

7. xpath语法-节点修饰语法可以根据标签的属性值、下标等来获取特定的节点7.1 节点修饰语法

路径表达式//title[@lang="eng"]/bookstore/book[1]/bookstore/book[last()]/bookstore/book[last()-1]/bookstore/book[position()>1]//book/title[text()='Harry Potter']选择lang属性值为eng的所有title元素选取属于 bookstore ⼦元素的第⼀个 book 元素。选取属于 bookstore ⼦元素的最后⼀个 book 元素。选取属于 bookstore ⼦元素的倒数第⼆个 book 元素。选择bookstore下⾯的book元素,从第⼆个开始选择选择所有book下的title元素,仅仅选择⽂本为Harry Potter的title元素结果/bookstore/book[price>35.00]/title选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须⼤于 35.00。

出现在中括号[]中的@是⽤来修饰节点的,⽅便快速精准定位到该节点出现在结尾的/@是⽤来获取属性值的 7.2 关于xpath的下标在xpath中,第⼀个元素的位置是1最后⼀个元素的位置是last()倒数第⼆个是last()-17.3 语法练习

通过索引查找(修饰)节点1. 绝对路径选中某个div节点(第三个div节点)/html/body/div[1]/div[1]/div[2]/div[3]2. 绝对路径选中最后div节点(最后⼀个节点是第25个)/html/body/div[1]/div[1]/div[2]/div[25]/html/body/div[1]/div[1]/div[2]/div[last()]3. 绝对路径选中某个区间范围的div节点/html/body/div[1]/div[1]/div[2]/div[position()>20]

通过属性值查找(修饰)节点1. 相对路径选中某个div节点(第三个div)//div[@class="col1 old-style-col1"]/div[3]2. 相对路径选中倒数第⼆个div节点(最后⼀个节点是25)//div[@class="col1 old-style-col1"]/div[24]//div[@class="col1 old-style-col1"]/div[last()-1]3. 相对路径选中某个区间范围的div节点//div[@class="col1 old-style-col1"]/div[position()>20]4. 相对路径获取某个div标签的属性值(id值)//div[@class="col1 old-style-col1"]/div[1]/@id 通过⼦节点的值修饰(查找节点)1. 获取 span节点 下 i节点 的值⼤于1000的所有span节点//span[i>1000]  2. 获取div节点下 第⼆个span标签节点的值⼤于9.5的 div节点//div[span[2]>9.5]

通过包含修饰1. 通过属性名和属性值(部分包含or全部包含)查找节点//div[contains(@id,'qiushi_tag')]2. 通过标签内容(部分包含or全部包含)查找节点//span[contains(text(),'下⼀页')]

练习⼆:

所有的学科的名称//div[@class="nav_txt"]//a[@class="a_gd"]第⼀个学科的链接//div[@class="nav_txt"]/ul/li[1]/a/@href最后⼀个学科的链接//div[@class="nav_txt"]/ul/li[last()]/a/@href

知识点:掌握 xpath语法-选取特定节点的语法

8. xpath语法-其他常⽤节点选择语法可以通过通配符来选取未知的html、xml的元素8.1 选取未知节点的语法通配符*描述匹配任何元素节点。node()匹配任何类型的节点。8.2 语法练习全部的标签//*全部的属性//node()

知识点:掌握 xpath语法-选取位置节点的语法

补充:xpath的复合语法:⽤于同个⽹站的不同页⾯( | 表⽰ 或 )//h2/a | //td/a

....

发布者:admin,转转请注明出处:http://www.yc00.com/web/1687982565a63524.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信