我正在尝试学习如何读入一个带有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文件来说是个奇怪的问题。想法?
答案 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数据库。