【发布时间】:2023-03-09 11:13:01
【问题描述】:
运行下面的程序后,我得到这个data.frame中的错误(SalePrice,BedRooms,Park_Spaces,厕所,浴室,:参数暗示不同的行数:20、13、14
块引用
library(rvest)
library(tidyverse)
library(stringr)
df<-data.frame()
for(i in 1:10){
Link<-paste0("https://kenyapropertycentre.com/for-sale/houses/nairobi/showtype?page=",i)
page<-read_html(Link)
SalePrice<-page %>% html_nodes(".price+.price") %>%
html_text() %>% str_remove_all(",") %>% as.numeric()
BedRooms<-page %>% html_nodes(".fa-bed+ span")%>%
html_text()%>% as.numeric()
if (purrr::is_empty(BedRooms)){BedRooms=NA}
Address<-page %>% html_nodes(".voffset-bottom-10 strong") %>%
html_text() %>% as.character()
Bathrooms<-page %>% html_nodes(".fa-bath+ span")%>%
html_text() %>% as.numeric()
if (purrr::is_empty(Bathrooms)){Bathrooms=NA}
Toilets<-page %>% html_nodes(".fa-toilet+ span")%>%
html_text() %>% as.numeric()
if (purrr::is_empty(Toilets)){Toilets=NA}
Park_Spaces<-page %>% html_nodes(".fa-car+ span")%>%
html_text() %>% as.numeric()
if (purrr::is_empty(Park_Spaces)){Park_Spaces=NA}
Sales_Agency<-page %>% html_nodes(".text-right") %>% html_text()%>%
str_remove_all("[0-9]") %>% str_remove_all("\n") %>% str_remove_all(" ") %>%
str_remove_all("[:punct:]") %>% as.character()
Date_Added<-page %>% html_nodes(".added-on+.added-on") %>% html_text()%>%
str_remove_all("Added on")
df<-rbind(df,data.frame(SalePrice,BedRooms,Park_Spaces,Toilets,Bathrooms,
Sales_Agency,Date_Added))
cat(paste("page",i),"\n")
}
【问题讨论】:
标签: r web-scraping rvest