使用R下载ZIP文件提取CSV时遇SSL证书错误求助
解决R语言下载ZIP文件时的SSL证书错误问题
我来帮你搞定这个SSL证书导致的下载失败问题~你遇到的错误是因为目标网站的SSL证书没有被R默认的证书信任列表认可,所以下载时触发了验证失败的警告。下面给你几个实用的解决办法:
方法1:用curl跳过证书验证
给download.file()指定method="curl",并添加跳过证书验证的参数,这样就能绕开证书信任问题完成下载:
url <- 'https://www.intervista.ch/media/2020/03/Download_Mobilit%C3%A4ts-Monitoring_Covid-19.zip' temp <- tempfile() # 使用curl并跳过证书验证 download.file(url, temp, method = "curl", extra = "-k")
方法2:用httr包处理(更推荐)
httr包的证书处理逻辑更灵活,同样可以跳过验证完成下载:
library(httr) url <- 'https://www.intervista.ch/media/2020/03/Download_Mobilit%C3%A4ts-Monitoring_Covid-19.zip' temp <- tempfile() # 发送请求并写入临时文件,跳过SSL验证 GET(url, write_disk(temp, overwrite = TRUE), config(ssl_verifypeer = FALSE))
下载成功后提取CSV文件
等文件下载完成,就可以解压并读取里面的CSV了:
# 解压ZIP到临时目录 unzip(temp, exdir = tempdir()) # 查看目录里的CSV文件(找到你需要的那个文件名) list.files(tempdir(), pattern = "\\.csv$") # 读取目标CSV文件(替换成实际的文件名) csv_data <- read.csv(file.path(tempdir(), "Mobilitäts-Monitoring_Covid-19.csv"))
⚠️ 注意:跳过SSL证书验证会有一定安全风险,不过这个网站是你已知的可信来源,所以可以放心使用。如果之后遇到其他网站的类似问题,优先考虑更新R的证书库(比如安装openssl包来管理证书),而不是直接跳过验证。
内容的提问来源于stack exchange,提问作者Florian Seliger
相关产品推荐
相关产品推荐

