我是网络爬虫的新手,并尝试了几种方法来跨多个页面执行rvest。不知何故它仍然无法正常工作,我只得到15个结果,而不是此类别中列出的207个产品。我究竟做错了什么?
psycopg2.NotSupportedError: cross-database references are not implemented: datetime.datetime.now
答案 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)