使用 Scrapy 的 .css 选择器获取 "data-..." 属性的值

Get value of "data-..." attribute with .css selector with Scrapy

我正在尝试使用 scrapy 获取数据属性的值:

response.css('.product-header-top div::attr("data-background-image")').get()

但我没有得到 data-background-image 的值,Python 抛出错误:

raise SelectorSyntaxError(cssselect.parser.SelectorSyntaxError: Got pseudo-element ::FunctionalPseudoElement[::attr(['data-background-image'])] not at the end of a selector

这里是相关的HTML网页代码:

<div data-background-image="/images/image.jpg" style="background-image: url(&quot;/images/image.jpg&quot;);"></div>

谢谢

更新 F.Hoque 是对的,而且效果很好。该网站是动态的,并使用 JS 呈现数据背景图像。所以 ::attr("data-...") 正在工作。感谢您的帮助@F.Hoque!

您的 CSS 选择没有问题。有错别字);只需删除它。

response.css('.product-header-top div::attr("data-background-image")').get()

由 Scrapy 证明 shell:

In [26]:  sel.css('div::attr("data-background-image")').get()
Out[26]: '/images/image.jpg'