Próbuję zeskrobać wszystkie rachunki z dwóch stron na stronie internetowej niższej francuskiej izby parlamentu. Strony pokrywają 2002-2012 i reprezentują mniej niż 1000 rachunków każdy.Jak zoptymalizować skrobanie za pomocą getURL() w R
Do tego ja zeskrobać z getURL
pośrednictwem tej pętli:
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)
})
Czy istnieje jakiś sposób, aby zoptymalizować funkcję getURL()
tutaj? I nie wydaje się używać jednoczesnego pobierania przekazując opcję async=TRUE
, co daje mi ten sam błąd za każdym razem:
Error in function (type, msg, asError = TRUE) :
Failed to connect to 0.0.0.12: No route to host
pomysłów? Dzięki!
'asynchroniczny = TRUE jest już domyślnym jeśli podać kilka adresów - ale otwarcie ponad 500 jednoczesnych połączeń do tej samej witryny nie może być dobrym pomysłem ... –
porządku. Cóż, nie mogę się zbytnio zmienić w działaniu 'getURL()' do tej pory. –