通过Scrapy使用.css选择器获取“data-...”属性的值

kiz8lqtg  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(387)

我尝试用scrapy获取一个数据属性的值:

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

但是我没有得到data-background-image的值,Python抛出了一个错误:
产生选择器语法错误(cssselect.parser.选择器语法错误:获得的伪元素::FunctionalPseudoElement[::attr(['data-background-image'])]不在选择器的末尾
以下是网页的相关HTML代码:
<div data-background-image="/images/image.jpg" style="background-image: url(&quot;/images/image.jpg&quot;);"></div>
谢谢

UPDATEF.Hoque是正确的,它工作正常。网站是动态的,用JS渲染数据背景图像。所以::attr(“data-...”)工作正常。谢谢你的帮助@F.Hoque!

dgtucam1

dgtucam11#

您的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'

相关问题