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

如何在R会话中从www2.census.gov下载指定压缩文件(原方法失效)

在R中下载Census.gov压缩文件的替代方案

需要下载的目标文件地址:https://www2.census.gov/programs-surveys/cps/datasets/2024/march/asecpub24sas.zip

该文件在Firefox/Chrome浏览器中可正常下载,但download.file()原生命令、httr::GET()直接请求原链接均失效,仅通过web.archive.org的归档链接使用GET()能成功,推测是目标网站安全策略限制了非浏览器标识的请求。

以下是两种可行的解决方法:

方法1:模拟浏览器请求头(推荐)

目标网站大概率会校验请求的User-Agent字段,模拟主流浏览器的请求头即可绕过限制。

用httr添加自定义请求头

library(httr)
tf <- tempfile()
this_url <- "https://www2.census.gov/programs-surveys/cps/datasets/2024/march/asecpub24sas.zip"

# 模拟Chrome浏览器的User-Agent标识
GET(
  url = this_url,
  add_headers(`User-Agent` = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"),
  write_disk(path = tf, overwrite = TRUE),
  progress()
)

用curl命令行调用(备选)

如果httr仍无法正常工作,可直接调用系统的curl工具(需确保环境已安装curl):

tf <- tempfile(fileext = ".zip")
this_url <- "https://www2.census.gov/programs-surveys/cps/datasets/2024/march/asecpub24sas.zip"

# 通过curl添加浏览器标识并下载
system(
  sprintf('curl -L -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36" -o "%s" "%s"', tf, this_url)
)

方法2:使用归档链接(备用)

若上述方法均失效,可继续使用web.archive.org的归档链接:

library(httr)
tf <- tempfile()
archive_url <- "https://web.archive.org/web/https://www2.census.gov/programs-surveys/cps/datasets/2024/march/asecpub24sas.zip"

GET(archive_url, write_disk(tf, overwrite = TRUE), progress())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 12:30:09