我rvest
用来在网页上抓取一些感兴趣的信息的网站。一个示例页面是这样的https://www.edsurge.com/product-reviews/mr-elmer-product/educator-reviews,我写了一个这样的函数:
PRODUCT_NAME2 <- c()
REVIEW <- c()
USAGE <- c()
DF4 <- data.frame(matrix(ncol=3, nrow=0))
parse_review_page <- function(url) {
product_name2 <- read_html(url) %>%
html_nodes(".mb0 a") %>%
html_text()
review <- read_html(url) %>%
html_nodes(".review-ratings__text strong") %>%
html_text()
usage <- read_html(url) %>%
html_nodes("p:nth-child(3)") %>%
html_text()
row_num <- length(review)
product_name2 <- rep(product_name2, row_num)
PRODUCT_NAME2 <- c(PRODUCT_NAME2, product_name2)
print(length(PRODUCT_NAME2))
REVIEW <- c(REVIEW, review)
print(length(REVIEW))
USAGE <- c(USAGE, usage)
print(length(USAGE))
current_df2 <- data.frame(PRODUCT_NAME2, REVIEW, USAGE)
DF5 <<- rbind(DF4, current_df2)
return (DF5)
}
我用它把结果放入数据框中:
url_to_scrape <- c("https://www.edsurge.com/product-reviews/mr-elmer-
product/educator-reviews")
DF6 <- url_to_scrape %>% map_dfr(parse_review_page)
但我遇到的问题是,由于有 100 多条用户评论,网页只会显示 30 条用户评论。更具挑战性的是,点击页面底部的“加载更多”后,url 不会改变,因此基本上没有第二、第三……页面可以抓取。谁能提供有关如何解决此问题的建议,以便我可以通过运行我创建的功能来抓取所有评论数据,好吗?