我正在努力从TripAdvisor获取评分。到目前为止,我已经设法提取HTML节点,将它们转换为字符串,提取表示我需要的数字的字符串,然后将其转换为正确的数字,最后将其除以10以获得它所演示的正确值。 / p>
library(rvest)
url <- "https://www.tripadvisor.co.uk/Attraction_Review-g1466790-d547811-Reviews-Royal_Botanic_Gardens_Kew-Kew_Richmond_upon_Thames_Greater_London_England.html"
ratings_too_big <- url %>%
read_html() %>%
html_nodes("#REVIEWS .ui_bubble_rating") %>%
as.character() %>%
substr(38,39) %>%
as.numeric()
ratings_too_big/10
这无疑是非常混乱的 - 这是一种更干净,更有效的方法吗?我也试过Hadley Wickham的例子here:
library(rvest)
url <- "http://www.tripadvisor.com/Hotel_Review-g37209-d1762915-Reviews-JW_Marriott_Indianapolis-Indianapolis_Indiana.html"
reviews <- url %>%
read_html() %>%
html_nodes("#REVIEWS .innerBubble")
rating <- reviews %>%
html_node(".rating .rating_s_fill") %>%
html_attr("alt") %>%
gsub(" of 5 stars", "", .) %>%
as.integer()
这没有成功,因为没有返回任何数据(HTML节点中似乎没有任何内容&#34; .rating .rating_s_fill&#34;)。我是新的抓取和css标识符,如果答案显而易见,请道歉。