Я пытаюсь очистить все счета от двух страниц на веб-сайте французской нижней палаты парламента. Страницы охватывают 2002-2012 годы и составляют менее 1000 счетов каждый.Как оптимизировать скребок с getURL() в R
Для этого я соскрести с getURL
через эту петлю:
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)
})
Есть ли способ, чтобы оптимизировать функцию getURL()
здесь? Я не могу использовать параллельную загрузку пропускания async=TRUE
варианта, который дает мне ту же ошибку каждый раз, когда:
Error in function (type, msg, asError = TRUE) :
Failed to connect to 0.0.0.12: No route to host
Есть идеи? Благодаря!
'асинхронной = TRUE, уже по умолчанию, если вы даете несколько URL-адресов - но открытие более 500 одновременных подключений к одной и той же веб-сайт не может быть хорошей идеей ... –
Хорошо. Ну, я не могу сильно изменить, как работает 'getURL()'. –