Paralelizar download no R

.

R
Autor

Maurício Vancine

Data de Publicação

16 de junho de 2025

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:

# 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()

Fonte da imagem: Nancy Zjaba/Pexels.