【问题标题】:Rvest webscraping limited results (R)Rvest 网络抓取有限的结果 (R)
【发布时间】:2018-09-12 13:08:26
【问题描述】:

我是 webscraping 的新手,并尝试了几种方法来跨多个页面执行 rvest。不知何故,它仍然不起作用,我只得到 15 个结果,而不是该类别中列出的 207 个产品。我究竟做错了什么?

library(rvest)
all_df<-0
library(data.table)

for(i in 1:5){
  url_fonq <- paste0("https://www.fonq.nl/producten/categorie-lichtbronnen/?p=",i,sep="")
  webpage_fonq <- read_html(url_fonq)
  head(webpage_fonq)

  product_title_data_html <- html_nodes(webpage_fonq, '.product-title')
  product_title_data <- html_text(product_title_data_html)
  head(product_title_data)
  product_title_data<-gsub("\n","",product_title_data)
  product_title_data<-gsub(" ","",product_title_data)
  head(product_title_data)
  length(product_title_data)

  product_price_data_html <- html_nodes(webpage_fonq, '.product-price')
  product_price_data <- html_text(product_price_data_html)
  head(product_price_data)
  product_price_data<-gsub("\n","",product_price_data)
  product_price_data<-gsub(" ","",product_price_data)
  head(product_price_data)
  product_price_data
  length(product_price_data)
  fonq.df <- data.frame(Procuct_title = product_title_data, Price = product_price_data)
  all_df <-list(fonq.df)
  }

final2<-rbindlist(all_df,fill = TRUE)

View(final2)

【问题讨论】:

    标签: r web-scraping rvest


    【解决方案1】:

    问题是您只保留从网站的最后页抓取的数据,因此您只存储了最后 15 个产品。

    所以不是在每次迭代中覆盖 all_df 变量

    all_df <- list(fonq.df)
    

    all_df 末尾追加fonq.df 数据框:

    all_df <- bind_rows(all_df, fonq.df)
    

    这是我的完整解决方案:

    library(rvest)
    all_df <- list()
    library(dplyr)
    
    for(i in 1:5){
    
      url_fonq <- paste0("https://www.fonq.nl/producten/categorie-lichtbronnen/?p=",i,sep="")
      webpage_fonq <- read_html(url_fonq)
      head(webpage_fonq)
    
      product_title_data_html <- html_nodes(webpage_fonq, '.product-title')
      product_title_data <- html_text(product_title_data_html)
      head(product_title_data)
      product_title_data<-gsub("\n","",product_title_data)
      product_title_data<-gsub(" ","",product_title_data)
      head(product_title_data)
      length(product_title_data)
    
      product_price_data_html <- html_nodes(webpage_fonq, '.product-price')
      product_price_data <- html_text(product_price_data_html)
      head(product_price_data)
      product_price_data<-gsub("\n","",product_price_data)
      product_price_data<-gsub(" ","",product_price_data)
      head(product_price_data)
      product_price_data
      length(product_price_data)
      fonq.df <- data.frame(Procuct_title = product_title_data, Price = product_price_data)
      all_df <-bind_rows(all_df, fonq.df)
    }
    
    View(all_df)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      相关资源
      最近更新 更多