如何修改CSS选择器,仅获取含class_a不含class_b元素的文本?
解决方案
嘿,这个问题很常见,我来帮你搞定!你当前的选择器会匹配所有带有class_a类的元素,那自然也会包含同时拥有class_b的那个<span>。要只获取Text A,咱们可以用CSS的:not()否定伪类来排除掉带class_b的元素。
修改后的选择器如下:
response.css('.class_a:not(.class_b)::text').extract()
原理说明
.class_a负责匹配所有带有class_a类的元素:not(.class_b)是核心:它会把同时带有class_b类的元素排除在外- 两者组合后,就只会精准选中仅拥有
class_a类的<span>,也就是你需要的Text A
执行这个选择器后,返回的结果就只会包含Text A,完美跳过Text AB啦。
内容的提问来源于stack exchange,提问作者 GhostKU
相关产品推荐
相关产品推荐

