【问题标题】:Web scraping on multiple pages using R使用 R 在多个页面上抓取网页
【发布时间】:2017-06-27 23:37:35
【问题描述】:

我正在尝试使用 R 中的以下 url 抓取产品的评论。当我运行以下代码时,我能够抓取一条评论。

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()

但是,当我使用以下代码在多个页面上抓取多个 cmets 时,它返回 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()
                  })

【问题讨论】:

  • 在您的第一个代码中,您自己搜索".content-item-text"。在嵌套查询中,您正在搜索 ".content-item-text review-text",但未找到(即使在第一个代码中)。

标签: r web-scraping


【解决方案1】:

以下代码是否实现了您的目标?

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 小时)

此外,对于多重循环表示歉意,我还不能很快地将循环转换为应用函数:)

【讨论】:

  • @ Immanuvel Vasanth 欢迎您。如果您觉得有帮助,请接受我的回答并考虑投赞成票:)
  • @Frost_Maggot 看起来我的赞成票已被接受,但由于我是该平台的新手,因此不会公开显示..
猜你喜欢
  • 2016-08-09
  • 2022-01-21
  • 2021-09-30
  • 1970-01-01
  • 1970-01-01
  • 2013-06-02
  • 1970-01-01
  • 2017-02-05
  • 2020-09-13
相关资源
最近更新 更多