scrapy xpath 定位节点获取数据


一、Xpath路径
/ 绝对路径
// 相对路径

#查找html下的body下的form下的所有input节点 /html/body/form/input
#查找所有input节点 //input

#查找form节点下的所有节点
//form/*
#查找所有节点
//* #查找所有input节点(input至少有爷爷辈亲戚节点) //*/input

二、使用索引

如果筛选时元素时出现多个节点,但我们想确定唯一节点。可以使用类似于列表索引的方式精确定位。

#定位 第8个td下的 第2个a节点 //*/td[7]/a[1] #定位 第8个td下的 第3个span节点 //*/td[7]/span[2] #定位 最后一个td下的 最后一个a节点 //*/td[last()]/a[last()]

三、使用属性

为了让定位更精准,跟使用索引类似,我们要增加信息量,那么还可以使用属性。@符号是属性符

#定位所有包含name属性的input节点 //input[@name] #定位含有属性的所有的input节点 //input[@*] #定位所有value=2的input节点 //input[@value='2'] #使用多个属性定位 //input[@value='2'][@id='3'] 或者//input[@value='2' and @id='3']

四、常用函数

除了索引、属性外,Xpath还可以使用便捷的函数来增强定位的准确性。下面试常用的几个函数:

<a class="menu_hot" href="/ads/auth/promote.html">应用推广</a> 
#定位href属性中包含“promote.html”的所有a节点 //a[contains(@href,'promote.html')] #元素内的文本为“应用推广”的所有a节点 //a[text()='应用推广'] #href属性值是以“/ads”开头的所有a节点 //a[starts-with(@href,'/ads')]
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM