Scrapy:: 如何在 CSS 选择器中使用“not”来跳过元素

Posted

技术标签:

【中文标题】Scrapy:: 如何在 CSS 选择器中使用“not”来跳过元素【英文标题】:Scrapy:: How to use "not" in CSS selector to skip elements 【发布时间】:2017-06-07 00:11:30 【问题描述】:

在scrapy中是否可以使用这样的选择器?

我尝试关注但索引超出范围错误

response.css('.breadcrumbs > ul > li:not[class^="home"]').extract()

【问题讨论】:

【参考方案1】:

您应该将not 表达式括在这样的括号中

response.css('.breadcrumbs > ul > li:not([class^="home"])').extract()

【讨论】:

你读过这个问题吗?在 css 选择器中的“非”语法的上下文中,答案到底有什么错误? not 表达式应该包含在括号中是错误的吗?或者可能是你的“应该使用”表达神奇地不需要它? 对不起,我的错。我的意思是:当您使用^= 时,您说的是“ 开头”,因此最好将:not*= 一起使用,这意味着“包含”。所以如果你用你有的东西不起作用,你也可以尝试使用::not([class*="home"])。 (这对我有用。)

以上是关于Scrapy:: 如何在 CSS 选择器中使用“not”来跳过元素的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CSS 选择器中排除特定的类名?

在 CSS 选择器中使用 & [关闭]

如何在 CSS 选择器中组合类和 ID?

具有特定属性名称和值的 Scrapy .css 选择元素

CSS 选择器-如何定位父元素

哪些字符在 CSS 类名/选择器中有效?