技术问询:如何用选择器获取第2、3个元素及xodd属性值
元素选择与属性提取解决方案
嘿,我会分两部分来帮你搞定这两个元素选择和属性提取的需求,不管你是用JavaScript、Python爬虫还是其他前端/自动化工具,下面的选择器方案都能适配:
一、获取页面中的第二个和第三个元素
这里提供CSS选择器和XPath两种最常用的实现方式,你可以根据自己的工具栈来选:
1. CSS选择器方案
- 定位第二个元素:用
:nth-child(2)或者:nth-of-type(2)(注意:nth-child是对父元素下所有子元素排序,nth-of-type只针对同类型子元素排序,比如只算<td>)
针对你给出的HTML里的<tr>下的<td>,选第二个<td>的写法:tr > td:nth-child(2) - 定位第三个元素:把序号换成3就行
tr > td:nth-child(3)
2. XPath方案
- 定位第二个元素:用
position()函数指定位置//tr/td[position()=2] - 定位第三个元素:
//tr/td[position()=3]
二、提取属性xodd值包含指定字符串的元素
针对xodd属性值包含tzccftzxt、czofczec、az9faz8p的元素,同样提供两种选择器方案:
1. CSS选择器方案
用属性包含匹配符*=,可以单个匹配,也可以用逗号分隔同时匹配多个条件:
/* 匹配xodd值包含tzccftzxt的元素 */ [xodd*="tzccftzxt"] /* 同时匹配包含三个字符串中任意一个的元素 */ [xodd*="tzccftzxt"], [xodd*="czofczec"], [xodd*="az9faz8p"]
2. XPath方案
用contains()函数,多个条件用or连接:
<!-- 匹配xodd值包含tzccftzxt的元素 --> //*[contains(@xodd, 'tzccftzxt')] <!-- 匹配包含三个字符串中任意一个的元素 --> //*[contains(@xodd, 'tzccftzxt') or contains(@xodd, 'czofczec') or contains(@xodd, 'az9faz8p')]
结合你的HTML示例优化
如果这些xodd属性是在<td>标签上,你可以缩小范围让选择器更精准,比如:
tr > td[xodd*="tzccftzxt"]
对应的XPath:
//tr/td[contains(@xodd, 'tzccftzxt')]
内容的提问来源于stack exchange,提问作者xRobot
相关产品推荐
相关产品推荐

