在地图中添加 purrr:slowly 或 sys.sleep

Add a purrr:slowly or sys.sleep in a map

我创建了一个功能来 抓取 fbref.com 网站。有时在本网站或其他我试图 scrape 的网站上,我会收到超时错误。我读到了它,建议在申请之间包含一个 sys.sleep 或 purrr:slowly。我试图包含在地图中,但我做不到。我如何在地图内的每个申请之间包含 10 秒的间隔(这将是 7 个申请和 6 个 10 秒的间隔)。 在此先感谢,如果我没有包含某些内容,请通知我!

#packages
library(rvest)
library(stringr)
library(dplyr)
library(tidyr)
library(purrr)
library(lubridate)
library(tm)

#function

funcao_extract <- function(link1,link2){

fbref <- "https://fbref.com/pt/equipes/"
    dados <- fbref %>% 
    map2_chr(rep(link1,7),paste0) %>% 
    map2_chr(seq(from=2014,to=2020),paste0) %>% 
    map2_chr(rep(link2,7),paste0) %>% 
    map(. %>% 
          read_html() %>% 
          html_table() %>% 
          .[[1]] %>%   #select first table
          dplyr::bind_rows()%>%
          janitor::clean_names() %>% 
          slice(-1) %>% 
          select(-21) %>% 
          rename(nome=1,nacionalidade=2,posicao=3,idade=4,jogos=5,inicios=6,minutos=7,minutos_90=8,gol=9,assistencia=10,
                 gol_normal=11,gol_penalti=12,penalti_batido=13,amarelo=14,vermelho=15,gol_90=16,assistencia_90=17,
                 gol_assistencia_90=18,gol_normal_90=19,gol_assistencia_penalti_90=20) %>% 
          as.data.frame() %>% 
          format(scientific=FALSE) %>% 
          mutate_at(.,c(5:15),as.numeric) %>% 
          mutate(nacionalidade = str_extract(nacionalidade, "[A-Z]+")) #only capital letters
    ) %>% #renomear as colunas
    setNames(paste0(rep("Gremio_",7),seq(from=2014,to=2020))) #name lists
  
}

#test with Grêmio

gremio <- funcao_extract("d5ae3703/","/Gremio-Estatisticas")

举个小例子

library(tidyverse)

example <- list(data.frame(a=1:10), data.frame(a=11:20))

example %>%
  map_df(~ {Sys.sleep(10) ; 
                      message(Sys.time());.x} %>%
                 summarise(a = sum(a)))