2017-03-16 13 views
3

this linkのデータをスクレイプし、csvのテーブルを保存する必要があります。私が今持っているもの:しかし、私はループを実行する方法を見つけ出すことはできません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) 

: 私は、最初のページ、2ページ目をrvest使ってスクラップして、このコードを使用して、これらのテーブルを保存することができます。

+0

あなたが「ループ」によって何を意味していますか? – Ahmedov

+0

は、ページ5090まですべてのページをこすります。今、私はページごとにスクラップすることができます。 –

答えて

4

あなたは、直接URLを介して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"]] 
} 

か、直接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)is not TRUE」というエラーが表示されます。どのように私はこの問題を解決することができますか?どうも。 –

+0

@VitalijRamich私の問題は、コードを修正しました。 – m0nhawk

関連する問題