读取https网址时出现zip文件错误

时间:2012-02-16 04:15:41

标签: r

我正在尝试学习如何读入一个带有https url到r的访问/ zip文件。这是一个更大的映射学习项目的一部分,我正在进行拓展我发现的R技能{{3} } (我也会将这篇文章链接回来)

这是计划,但我从getURL收到错误,我不确定原因:

require(RCurl)
NYSdemo <- getURL("https://reportcards.nysed.gov/zip/SRC2010.zip")
temp <- tempfile()
download.file(NYSdemo, temp)
data <- read.table(unz(temp, "a1.dat"))
unlink(temp)

错误:

> NYSdemo <- getURL("https://reportcards.nysed.gov/zip/SRC2010.zip")
Error in function (type, msg, asError = TRUE)  : 
  SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

就像我说的这是一个学习项目,我在这里使用的许多技术我都不熟悉。

我要下载的实际zip文件是HERE

也许这实际上不是一个编程问题,但是网址出错了,因为它没有在其上使用getURL。

提前感谢您的想法和帮助。

编辑:我尝试了ssl.verifypeer但又收到了其他错误

> NYSdemo <- getURL("https://reportcards.nysed.gov/zip/SRC2010.zip",
+ ssl.verifypeer = FALSE)
Error in curlPerform(curl = curl, .opts = opts, .encoding = .encoding) : 
  embedded nul in string: 'PK\003\004\024\0\0\0\b\0i[j>¶U#]tó\036\005\0 ÷- {And it continues}
> 

编辑2:按文森特的建议

> NYSdemo <- getURL("http://reportcards.nysed.gov/zip/SRC2010.zip")
> download.file(NYSdemo, temp)
Error in download.file(NYSdemo, temp) : unsupported URL scheme
> 
> NYSdemo <- getBinaryURL("https://reportcards.nysed.gov/zip/SRC2010.zip")
Error in function (type, msg, asError = TRUE)  : 
  SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
> 
> url.exists("https://reportcards.nysed.gov/zip/SRC2010.zip")
[1] FALSE   #not sure why this is because it works to type into url bar of browser

这些信息让我相信这个问题对于zip文件来说是个奇怪的问题。想法?

1 个答案:

答案 0 :(得分:5)

虽然你不相信我在TS,我在任何提供ssl.verify想法的人的帮助下测试了我的解决方案。

bin <- getBinaryURL("https://reportcards.nysed.gov/zip/SRC2010.zip",
                    ssl.verifypeer=FALSE)
con <- file("schools.zip", open = "wb")
writeBin(bin, con)
close(con)

由于文件很大,我花了一段时间才下载二进制文件,但它快速写了 real 。确保关闭连接,以便之后可以打开ZIP文件。我能够打开PDF和Access数据库。