【问题标题】:Add a purrr:slowly or sys.sleep in a map在地图中添加 purrr:slowly 或 sys.sleep
【发布时间】:2021-11-02 02:48:20
【问题描述】:

我创建了一个函数来抓取 fbref.com 网站。有时在我试图抓取的本网站或其他网站中,我会收到超时错误。我读过它,建议在申请之间包含一个 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")

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: r web-scraping purrr rvest


【解决方案1】:

只是一个小例子

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

【讨论】:

  • 我在移动自动取款机上,所以我无法给出更复杂的答案,但我希望它很清楚。 :-)
  • 太完美了!对此,我真的非常感激!我尝试了很多东西,但都没有奏效。有了您的回答,我可以修改代码并了解更多有关地图功能的信息!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-02
  • 1970-01-01
  • 2017-07-06
  • 2020-07-14
相关资源
最近更新 更多