Estoy tratando de raspar todas las facturas de dos páginas en el sitio web de la cámara baja del parlamento francés. Las páginas cubren 2002-2012 y representan menos de 1,000 facturas cada una.Cómo optimizar raspado con getURL() en R
Para ello, raspo con getURL
través de este bucle:
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)
})
¿Hay alguna manera de optimizar la función getURL()
aquí? Me parece que no puede utilizar la descarga simultánea pasando la opción async=TRUE
, que me da el mismo error cada vez:
Error in function (type, msg, asError = TRUE) :
Failed to connect to 0.0.0.12: No route to host
¿Alguna idea? ¡Gracias!
'asíncrono = TRUE ya es el valor predeterminado si se le da varias direcciones URL - pero la apertura de más de 500 conexiones simultáneas a la misma página web puede no ser una buena idea ... –
bien. Bueno, no puedo cambiar mucho a cómo 'getURL()' funciona hasta ahora. –