2017-09-21 1 views
0

Ich versuche, eine Tabelle für jede Seite zu kratzen und dann alle zusammen in einen Datenrahmen zu bringen. Der folgende Code funktioniert für die Seiten 0 bis 5:Seitentabelle

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) 

Wenn ich jedoch erhöhen die Seiten 5 bis etwa 20 erhalte ich die folgende Fehlermeldung:

Fehler in bind_rows_ (x, id = id) : Argument 1 muss Namen haben

Jede Hilfe sehr geschätzt. Dank

Antwort

0

Ich habe den folgenden Code versucht, ohne einen Fehler zu bekommen Schleifen statt gelten mit:

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) 
} 

Aber ich denke, die Struktur der Seite ändert oder vermeidet mehr als 5 Seiten ohne Registrierung Anzeigen ?! (Ich habe keine Spanischkenntnisse hier).

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

was Sie stoßen eher zu sein scheint eine Seitenansicht Einschränkung als eine Codierung Problem also: Wenn Sie jedoch die URL mit Seite zu öffnen versuchen> 5, wird das folgende Popup angezeigt.

Ihr Code ist ziemlich cool BTW (haben immer in Schleifen für diese Art von Problemen gearbeitet) und scheint nicht der Grund für die Fehlermeldung zu sein.

Verwandte Themen