如何用Scrapy CSS选择器提取span标签外的指定文本?
嘿,我来帮你搞定这个Scrapy CSS选择器的问题!
你遇到的情况其实是因为<a>标签里包含了两个子内容:一个<span>元素,还有一个独立的文本节点(就是你要的"Brian McMills")。之前用h1 a ::text会把<a>下所有文本节点都选出来,所以先拿到了<span>里的内容;而:not(span)没用是因为这个伪类是针对元素的,没法直接排除元素里的文本节点。
给你一个纯CSS的解决方案,用相邻兄弟选择器就能精准定位到你要的文本:
h1 a span + ::text
这个选择器的逻辑是:选中<a>标签下,紧跟在<span>元素后面的那个文本节点,正好就是你需要的"Brian McMills"。
如果是在Scrapy代码里提取,你可以这么写(加上strip()是为了清理掉文本前后可能的空格):
response.css('h1 a span + ::text').get().strip()
内容的提问来源于stack exchange,提问作者dryleaf
相关产品推荐
相关产品推荐

