Sto cercando di grattare tutti i conti da due pagine sul sito web della camera bassa del parlamento francese. Le pagine coprono il periodo 2002-2012 e rappresentano meno di 1.000 banconote ciascuna.Come ottimizzare lo scraping con getURL() in R
Per questo, io raschiare con getURL
attraverso questo ciclo:
b <- "http://www.assemblee-nationale.fr" # base
l <- c("12","13") # legislature id
lapply(l, FUN = function(x) {
print(data <- paste(b, x, "documents/index-dossier.asp", sep = "/"))
# scrape
data <- getURL(data); data <- readLines(tc <- textConnection(data)); close(tc)
data <- unlist(str_extract_all(data, "dossiers/[[:alnum:]_-]+.asp"))
data <- paste(b, x, data, sep = "/")
data <- getURL(data)
write.table(data,file=n <- paste("raw_an",x,".txt",sep="")); str(n)
})
C'è un modo per ottimizzare la funzione getURL()
qui? Io non riesco a utilizzare il download simultaneo passando l'opzione async=TRUE
, che mi dà lo stesso errore ogni volta:
Error in function (type, msg, asError = TRUE) :
Failed to connect to 0.0.0.12: No route to host
Tutte le idee? Grazie!
'asincrona = TRUE è già il default se si dà diversi URL - ma di apertura più di 500 connessioni simultanee al sito stesso non può essere una buona idea ... –
Va bene. Bene, non riesco a cambiare molto a come 'getURL()' funziona finora. –