2017-09-21 22 views
0

我試圖爲每個頁面刮一張表,然後將它們一起放入一個數據框。下面的代碼適用於頁面0到5:分頁表

pages <- 0:5 
urls <- paste0("http://www.expansionyempleo.com/buscar-trabajo-empleo/cid/3BC18A08D9BB661C9B65C93203B654EF/canal/0/pagenumber/",pages) 

get_table <- function(url) { 
url %>% 
read_html() %>% 
html_nodes(xpath = '//*[@id="mytable"]') %>% 
html_table() 
} 

results <- sapply(urls, get_table) 
results <- rbind_all(results) 
View(results) 

然而,當我增加從5頁至例如20我得到以下錯誤:

錯誤bind_rows_(X,ID = ID) :論據1必須有名字

任何幫助非常感謝。由於

回答

0

我試過下面的代碼沒有得到使用循環的錯誤,而不是適用於:

pages <- 0:5 
urls <- paste0("http://www.expansionyempleo.com/buscar-trabajo-empleo/cid/3BC18A08D9BB661C9B65C93203B654EF/canal/0/pagenumber/",pages) 
result <- data.frame() 

for (i in 1:length(urls)) { 

    temp_result <- read_html(urls[i]) %>% 
    html_nodes(xpath = '//*[@id="mytable"]') %>% 
    html_table() %>% 
    as.data.frame() 

    result <- rbind(result, temp_result) 
} 

不過,我覺得頁面結構發生變化或避免顯示超過5頁未經登記? (我在這裏缺乏西班牙文知識)。 但是,如果您嘗試使用頁面> 5打開網址,彈出以下窗口所示:

Para poder seguir revisando las vacantes de empleo en nuestro sitio, debes ingresar con tu E-mail y Contraseña

所以你遇到什麼似乎不是一個問題,編碼一個頁面視圖限制。

你的代碼是很酷的順便說一句(一直工作在這種問題的循環),似乎並不是錯誤消息的原因。