使用R的Amazon Review Scraping

时间:2018-06-14 10:14:09

标签: html r machine-learning web-scraping nlp

我正在尝试从以下链接中删除亚马逊评论标题

https://www.amazon.in/Moto-Plus-Lunar-Grey-64GB/product-reviews/B071HWTHPH/ref=cm_cr_dp_d_show_all_top?ie=UTF8&reviewerType=all_reviews&sortBy=recent&pageNumber=

以下是我正在使用的代码

moto_rating <- NULL
N_pages_rating <- 1
for (j in 1: N_pages_rating){
  t_rating <- read_html(paste0(url, j)) 
  s_rating <- cbind(t_rating %>% html_nodes(".review-rating") %>%  html_text())
  moto_rating <- rbind(s_rating,moto_rating)

问题是我还获得了“最佳正面评论”和“评论最高评论”的评论标题,并且它会被重复提取,因为它出现在所有评论页面中。我在下面的链接中突出显示了它。

Please click link

我不想要提取“最佳正面评论”和“最高评论评论”(如上图中以红色圈出)的评论标题。但我不确定如何在提取时排除它。请帮忙

1 个答案:

答案 0 :(得分:1)

我不确定您要做什么,但您应该使用XPath从网页中选择特定对象。

library(rvest)

url <- "https://www.amazon.in/Moto-Plus-Lunar-Grey-64GB/product-reviews/B071HWTHPH/ref=cm_cr_dp_d_show_all_top?ie=UTF8&reviewerType=all_reviews&sortBy=recent&pageNumber="
moto_rating <- NULL
N_pages_rating <- 1
for (j in 1: N_pages_rating){
  t_rating <- read_html(paste0(url, j)) 
  s_rating <- cbind(t_rating %>% html_nodes(xpath = '/html/body/div[1]/div[3]/div[1]/div[1]/div/div[1]/div/div[1]/div/div[1]/div[4]/i/span') %>%  html_text())
  moto_rating <- rbind(s_rating,moto_rating)
  }

您可以在此图片上看到如何获得正确的XPath:

Xpath

我希望它会有所帮助。