2017-03-16 95 views
3

我需要从this link中抓取数据并将表格保存为csv。我现在拥有的一切:我 废能利用rvest第一页,第二页,并使用此代码保存这些表:r在网页中抓取(带循环)

library(rvest) 
webpage <- read_html("https://bra.areacodebase.com/number_type/M?page=0") 
data <- webpage %>% 
    html_nodes("table") %>% 
    .[[1]] %>% 
    html_table() 
url<- "https://bra.areacodebase.com/number_type/M?page=0" 
webpage2<- html_session(url) %>% follow_link(css = ".pager-next a") 
data2 <- webpage %>% 
html_nodes("table") %>% 
.[[1]] %>% 
    html_table() 
data_all <- rbind(data, data2) 
write.table(data_all, "df_data.csv", sep = ";", na = "", quote = FALSE, row.names = FALSE) 

#result<- lapply(webpage, %>% follow_link(css = ".pager-next a")) 
#data_all <- rbind(data:data2) 

但是,我想不出如何运行循环。

+0

你是什么意思“循环”? – Ahmedov

+0

刮到所有页面,直到页面5090。现在我可以将页面切换为页面。 –

回答

4

您可以进入到下一个环节与follow_link或通过网址直接获取页:

webpage <- "https://bra.areacodebase.com/number_type/M?page=0" 

for(i in 2:5089) { 
    data <- read_html(webpage) %>% 
    html_nodes("table") %>% 
    .[[1]] %>% 
    html_table() 

    webpage <- html_session(webpage) %>% follow_link(css = ".pager-next a") %>% .[["url"]] 
} 

或者直接网址:

for(i in 0:5089) { 
    webpage <- read_html(paste0("https://bra.areacodebase.com/number_type/M?page=", i)) 
    data <- webpage %>% 
    html_nodes("table") %>% 
    .[[1]] %>% 
    html_table() 
} 
+0

如果我使用第一个示例,我收到错误“错误:is.character(url)不是真。”我如何解决这个问题?谢谢。 –

+0

@VitalijRamich我的问题,我已经修复了代码。 – m0nhawk