震惊!xpath定位不到对应元素节点

在使用Selenium进行网页元素定位时遇到问题,xpath无法找到具有空格属性名称的元素。尝试使用normalize-space处理空格无效,因为属性名称并非连续空格。经研究发现,此类属性可能属于复合类,不能直接在xpath中完整输入。通过调整代码成功定位元素,但获取的URL仍不正确。推测此类标签节点属性与class复合类的处理方式可能有所不同,尚需进一步探究。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

与定位网页审查时界面如下:
在这里插入图片描述
a标签的download href属性为url的一部分,是欲抓取的对象,但此时利用相一致的xpath路径表达式无法获取对应元素。
查阅相关博客,推荐使用normalize-space来处理含有空格的情况,尝试的结果如上图中所示,依然未解决,仔细阅读normalize-space的作用,通过去掉前导和尾随空白并使用单个空格替换一系列空白字符,使空白标准化,这就是说将xpath中的空白字符用一个空格字符替换匹配,但是我要找的元素是属性名称只含有一个空格,不存在一系列空白字符,因此无效。
再次查阅博客,得知此种属性名称含有空格应该是属于复合类,不能将整个属性名称写入路径表达式,大佬分享的知识在这:
Selenium在定位的class含有空格的复合类的解决办法
简单寻找一番,发现并没有声明href可以是复合类的说明,先按照大佬的试试再说,
在这里插入图片描述
结果就是这么简单,遂修改代码抓取相应元素,但此时得到的url居然仍不符合预期,仔细辨别一番发现如下怪像:

在这里插入图片描述
老老实实改成跟其他网站一样的href就没这么多弯弯绕绕了。所以大胆推测这种标签节点属性与class的复合类也略有不同,具体是何种情况还有待挖掘。

以上为个人笔记,其中的深层缘由暂

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值