You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用非API的R命令获取GitHub仓库中CSV文件的元数据?

获取GitHub上CSV文件元数据的非API R方案

你要的两个元数据都可以不用GitHub API,用基础的HTTP请求和网页解析搞定,具体方法如下:

1. 获取文件字节大小

用httr包发送HEAD请求(仅获取响应头,无需下载整个文件),从响应头里提取Content-Length字段即可得到文件大小。示例代码:

library(httr)

file_url <- "https://github.com/BrunaLab/LAS6292_DataManagement/blob/4b856c2fad350edaded78fba671023b8c544b1dd/static/course-materials/class-sessions/03-spreadsheets/examples/EB_data_example.csv"
# 需将链接中的blob替换为raw,才能获取原始文件的响应头
raw_file_url <- gsub("blob/", "raw/", file_url)

resp <- HEAD(raw_file_url)
file_size_bytes <- as.numeric(headers(resp)$`content-length`)
cat("文件大小:", file_size_bytes, "字节\n")

2. 获取最后提交日期

用rvest包解析GitHub文件页面的HTML,抓取页面上显示的最后提交时间。示例代码:

library(rvest)

file_page_url <- "https://github.com/BrunaLab/LAS6292_DataManagement/blob/4b856c2fad350edaded78fba671023b8c544b1dd/static/course-materials/class-sessions/03-spreadsheets/examples/EB_data_example.csv"

page <- read_html(file_page_url)
# 定位页面中最后提交时间的元素(基于当前GitHub页面布局)
last_commit_time <- page %>% 
  html_element(".f6.text-gray.mt-2 time") %>% 
  html_attr("datetime") %>% 
  as.POSIXct(format = "%Y-%m-%dT%H:%M:%SZ", tz = "UTC")

cat("最后提交日期:", format(last_commit_time, "%Y-%m-%d %H:%M:%S UTC"), "\n")

注意事项

  • 解析HTML的方法依赖当前GitHub页面结构,若平台后续调整页面布局,元素选择器可能需要更新,但短期可稳定使用。
  • 两种方法均无需GitHub API密钥,仅依赖公开页面的请求与解析。

内容的提问来源于stack exchange,提问作者Emilio M. Bruna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 08:50:27