【问题标题】:R + Rvest: retrieve files from githubR + Rvest:从 github 检索文件
【发布时间】:2022-02-01 18:55:21
【问题描述】:

很抱歉没有提供reprex,但如果可以的话,我一开始就不会发布这个。 我需要检索链接中列出的文件名中包含“età”一词的 excel 文件

https://github.com/apalladi/covid_vaccini_monitoraggio/tree/main/dati

并将它们的文件名存储在向量中。

知道如何实现这一目标吗?我正在考虑使用 Rvest,但我愿意接受其他合理的建议。 请注意,文件列表需要从 github 页面获取,因为它是先验未知的。 谢谢!

【问题讨论】:

    标签: r github web-scraping rvest


    【解决方案1】:

    您应该使用 github API 而不是抓取网站。这样,您可以通过执行以下操作将文件名和下载链接放入一个漂亮的两列数据框中:

    library(httr)
    library(dplyr)
    
    req <- GET(paste0("https://api.github.com/repos/", 
                      "apalladi/covid_vaccini_monitoraggio/contents/dati"))
    
    file_list <- content(req)
    filenames <- sapply(file_list, function(x) x$name)
    
    file_list <- file_list[grepl("xlsx$", filenames)]
    
    tibble(file = sapply(file_list, function(x) x$name),
           link = sapply(file_list, function(x) x$download_url))
    #> # A tibble: 30 x 2
    #>    file                         link                                            
    #>    <chr>                        <chr>                                           
    #>  1 data_iss_età_2021-07-14.xlsx https://raw.githubusercontent.com/apalladi/covi~
    #>  2 data_iss_età_2021-07-21.xlsx https://raw.githubusercontent.com/apalladi/covi~
    #>  3 data_iss_età_2021-07-28.xlsx https://raw.githubusercontent.com/apalladi/covi~
    #>  4 data_iss_età_2021-08-04.xlsx https://raw.githubusercontent.com/apalladi/covi~
    #>  5 data_iss_età_2021-08-11.xlsx https://raw.githubusercontent.com/apalladi/covi~
    #>  6 data_iss_età_2021-08-18.xlsx https://raw.githubusercontent.com/apalladi/covi~
    #>  7 data_iss_età_2021-08-25.xlsx https://raw.githubusercontent.com/apalladi/covi~
    #>  8 data_iss_età_2021-09-01.xlsx https://raw.githubusercontent.com/apalladi/covi~
    #>  9 data_iss_età_2021-09-08.xlsx https://raw.githubusercontent.com/apalladi/covi~
    #> 10 data_iss_età_2021-09-15.xlsx https://raw.githubusercontent.com/apalladi/covi~
    #> # ... with 20 more rows
    

    reprex package (v2.0.1) 于 2022-02-01 创建

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-09
    • 2020-07-17
    • 2020-11-15
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多