R语言 刮擦产品评级,显示为%-五星宽度

aiazj4mn  于 2023-01-03  发布在  其他
关注(0)|答案(1)|浏览(128)

我想从页面https://www.gonser.ch/中得到产品的平均评分,我看到评分显示为5颗星中填充了多少的百分比宽度(金色),用我的代码我可以提取一些宽度,但不是我想要的值:

page <- read_html("http://www.gonser.ch/13879")

# extract the div element
div_element <- html_nodes(page, ".feedback-stars-overlay-wrap") 

# Extract the "style" attribute from the element
style_attribute <- html_attr(div_element, "style") 

# extract the width value
width_value <- str_extract(style_attribute, "width: ([0-9.]+)%") 

# Convert to a numeric value
width <- as.numeric(width_value)

结果,style_attribute得到了9个不同的值,其中2个是NA,其他值不是我检查页面时看到的值(在本例中为width:91.6%在这个岗位上)
有没有人知道如何正确地只提取平均星星的宽度?提前非常感谢!

avkwfej4

avkwfej41#

library(tidyverse)
library(rvest)

"https://www.gonser.ch/" %>% 
  read_html() %>%  
  html_elements(".feedback-stars-overlay-wrap") %>% 
  html_attr("style") %>% 
  str_remove_all("[^\\.0-9]") %>% 
  as.numeric()

[1] 100.0  90.0  93.4  96.0  90.0  91.0

相关问题