Rvest网站抓取有限结果(R)

时间:2018-09-12 13:08:26

标签: r web-scraping rvest

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

psycopg2.NotSupportedError: cross-database references are not implemented: datetime.datetime.now

1 个答案:

答案 0 :(得分:1)

问题是您只保留了网站 last 页面上抓取的数据,因此仅存储了最后15种产品。

因此,不必在每次迭代中都覆盖all_df变量

all_df <- list(fonq.df)

fonq.df的末尾附加all_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)