数据抓取:如何使用Scrapy CSS从样式标签中选择宽度?

时间:2017-10-23 19:25:22

标签: css python-2.7 css-selectors scrapy

这些天我很想学习scrapy。我正在尝试使用widthdiv中选择CSS Selector,但这对我来说是不可能的。我尝试了很多方法来找到解决方案,但每次我都喜欢用xpath代替css选择器来解决问题。

HTML代码为:

<div class="stars-container">
   <div class="stars" style="width: 60.606%"> Rating</div>
</div>

response获取scrapy shell URL后,我尝试从上面的width中选择 html

response.css('.stars-container .stars ::attr(width)')
response.css('.stars-container  ::attr(width)')

如果有人帮我解决这个问题,我很高兴能够轻松地学习它。 谢谢

3 个答案:

答案 0 :(得分:2)

如果你想获得宽度值并坚持使用纯CSS解决方案,那么你可以去:

response.css('.stars-container .stars::attr(style)').re_first('width:\s*(\d+\.\d+)\s*%')

答案 1 :(得分:0)

这对你有帮助。

 response.css(".stars-container .stars").xpath('@style').extract()

答案 2 :(得分:0)

以下是如何获得宽度。

response.css('.stars-container .stars ::attr(style)').re_first(r'width:\s+(\d+.\d+)')

也熟悉python regx liberary,你可以在Python re

找到文档