使用R

时间:2018-05-03 14:41:27

标签: html r web-scraping rvest

我正在努力从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标识符,如果答案显而易见,请道歉。

0 个答案:

没有答案