我正在尝试在Amazon上删除某产品的评论,并以CSV格式导出结果。我试图在函数中嵌入for循环,但是它一直失败。因此,我将函数和for循环分开以查看结果,现在我不知道如何将1到10页的for循环结果组合起来。
运行脚本时,它按页面显示评论,但是当我将结果保存为CSV时,该文件只有页面10上的评论。
如何合并for循环的结果并将其完全保存在CSV中?
#install.packages("tidyverse")
#install.packages("rvest")
#install.packages("xml2")
library(tidyverse)
library(rvest)
library(xml2)
#Product = LG OLED77C9PUB Alexa Built-in C9 Series 77" 4K Ultra HD Smart OLED TV (2019)
#ASIN = B07PQ98L9D
scrap_amazon <- function(ASIN,page_num){
url_reviews <- paste0("https://www.amazon.com/LG-OLED77C9PUB-Alexa-Built-Ultra/product-reviews/",ASIN,"/?pageNumber=",page_num)
doc <- read_html(url_reviews)
#Review Date
doc %>%
html_nodes("[data-hook='review-date']")%>%
html_text() -> review_data
#Review Title
doc %>%
html_nodes("[class='a-size-base a-link-normal review-title a-color-base review-title-content a-text-bold']")%>%
html_text() -> review_title
#Review Text
doc %>%
html_nodes("[class='a-size-base review-text review-text-content']")%>%
html_text() -> review_text
#Number of Stars in Review
doc %>%
html_nodes("[data-hook='review-star-rating']")%>%
html_text() -> review_star
#Return a tibble
tibble(review_data,review_title,review_text,review_star,page = page_num)%>%
return()
}
for (i in 1:10){
review_all <- scrap_amazon(ASIN = "B07PQ98L9D",page_num = i) %>%
print(review_all)
}
#save in csv
write.table(review_all,file= "C:/Users/path/review.csv")