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

使用R下载网页中无直接URL链接的zip文件方法求助

R下载FFIEC站点无直链ZIP文件的解决方案

核心问题说明

该站点的文件下载由POST表单提交触发,没有暴露静态直链,所以直接用download.file()发送GET请求、或用rvest爬取静态HTML都无法拿到目标文件,只需要模拟浏览器提交表单即可完成下载。

实现方案(无需抓包也可快速调整)

方案1:用httr包模拟POST请求(轻量首选)

不需要启动浏览器,运行速度快,步骤如下:

  • 首先安装依赖包:install.packages("httr")
  • 参考下方代码调整参数运行即可
library(httr)

# 请求提交的固定地址
post_url <- "https://www.ffiec.gov/npw/FinancialReport/FinancialDataDownload"

# 表单参数,可根据需要下载的文件类型调整
form_params <- list(
  selectedyear = "2021",
  # 以下两个参数根据你要下载的文件修改:
  # reportType对应要下载的报告类型,可选值比如Call/UBPR/MPD等,和页面选项对应
  reportType = "Call",
  # downloadType固定为ZIP即可
  downloadType = "ZIP"
)

# 发送POST请求
resp <- POST(
  url = post_url,
  body = form_params,
  encode = "form",
  followlocation = TRUE
)

# 验证请求状态并保存文件
if (http_type(resp) == "application/zip") {
  writeBin(content(resp, "raw"), "ffiec_2021_download.zip")
  cat("文件下载完成,已保存到当前工作目录")
} else {
  stop("请求异常,状态码:", status_code(resp))
}

如果你不确定参数值,打开浏览器开发者工具(F12)切换到「网络」标签,点击页面上你要下载的文件按钮,找到名称为FinancialDataDownload的POST请求,复制「表单数据」板块的所有键值对替换上述form_params内容即可。

方案2:用RSelenium模拟点击(零抓包适配所有场景)

如果站点有反爬校验、或者表单参数复杂不想抓包,可以用RSelenium模拟真实浏览器操作:

  • 安装RSelenium包和对应浏览器的驱动
  • 代码打开目标页面后,定位到对应下载按钮的元素,模拟点击即可自动触发浏览器下载

内容的提问来源于stack exchange,提问作者DV24

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:15:03