# packages
library(tidyverse)
library(rvest)
library(parallelly)
library(doParallel)
library(foreach)
# options
options(timeout = 1e6) # aumenta o tempo de download
# download worldclim --------------------------------------------------
# url
urls <- "https://www.worldclim.org/data/worldclim21.html" %>%
rvest::read_html() %>%
rvest::html_nodes("a") %>%
rvest::html_attr("href") %>%
stringr::str_subset(".zip")
urls
# files
destfiles <- basename(urls)
destfiles
# download
doParallel::registerDoParallel(parallelly::availableCores(omit = 2))
foreach::foreach(i=1:length(urls)) %dopar% {
download.file(url = urls[i], destfile = paste0("~/Downloads/", destfiles[i]), mode = "wb")
}
doParallel::stopImplicitCluster()
Paralelizar download no R
.
R
Contextualização
Paralelizar é colocar mais de um core (núcleo do processador) para trabalhar ao mesmo tempo. Por exemplo, meu note tem 12 cores, então eu consigo colocar até 10 ou 11 arquivos para serem baixados ao mesmo tempo.
Exemplo:
Paralelização
Segue um exemplo com dados do WorldClim:
Fonte da imagem: Nancy Zjaba/Pexels.