使用 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("/images/image.jpg");"></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'
我正在尝试使用 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("/images/image.jpg");"></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'