如何刮星评级显示为图像集作为背景URL?



有一些网站基于单一图像集作为背景显示不同的星级,例如:https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000004gHhLEAU

background: url(https://appexchange.salesforce.com/resource/1656544481000/assetsappx/images/appx-rating-stars.png) no-repeat 0 0;

如何使用Watir抓取这些评级值?

正如@spickermann在评论中提到的,评级图像的显示是由CSS类控制的。例如,下面有一个"appx-rating-stars-45"类创建4.5星外观:

<span id="appxListingDetailPageId:AppxLayout:j_id841:j_id842:j_id845" class="appx-rating-stars appx-rating-stars-45"></span>

要确定星级,我们可以检索这个类,然后解析数字:

star_rating_element = browser.div(class: 'appx-listing-detail').span(class: 'appx-rating-stars')
star_rating_raw = star_rating_element.class_name[/appx-rating-stars-(dd)/, 1]
#=> "45"
star_rating_value = star_rating_raw.to_i / 10.0
#=> 4.5

给你

require 'watir'
b=Watir::Browser.new :firefox
b.goto 'https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000004gHhLEAU'
p b.element(xpath: "//p[normalize-space()='Rating']/../span/span/span[2]").text[/((.*))/,1]

输出
"576"

最新更新