我正在尝试使用R中的以下网址抓取产品的评论。当我运行以下代码时,我可以抓取一个评论。
comment<- read_html("https://www.influenster.com/reviews/chobani-greek-yogurt")
comment %>% html_node(".content-item-text") %>% html_text()
comment %>% html_node(".date") %>% html_text()
但是,当我使用下面的代码在多个页面上抓取多个注释时,它返回NULL。
reviews <- lapply(paste0('https://www.influenster.com/reviews/chobani-greek-yogurt?review_page=2', 2:50),
function(url){
url %>% read_html() %>%
html_nodes(".content-item-text review-text") %>%
html_nodes(".date") %>%
html_text()
})
答案 0 :(得分:0)
以下代码是否实现了您的目标?
comment<- read_html("https://www.influenster.com/reviews/chobani-greek-yogurt")
reviews <- c()
dates <- c()
for(i in 1:10){
reviews <- c(reviews,
comment %>%
html_node(paste0(".review-item:nth-child(", i, ") .review-text")) %>%
html_text())
dates <- c(dates,
comment %>%
html_node(paste0(".review-item:nth-child(", i, ") .date")) %>%
html_text())
}
for(j in 2:50){
comment <- read_html(paste0("https://www.influenster.com/reviews/chobani-greek-yogurt?review_page=", j))
for(i in 1:10){
reviews <- c(reviews,
comment %>%
html_node(paste0(".review-item:nth-child(", i, ") .review-text")) %>%
html_text())
dates <- c(dates,
comment %>%
html_node(paste0(".review-item:nth-child(", i, ") .date")) %>%
html_text())
}
}
请注意我在英国,提取的日期似乎得到纠正( - 网站上说明的6小时)
此外,为多重循环道歉我还没有很快将循环转换为apply函数:)