Ошибка zip-файла при чтении по URL-адресу https - PullRequest
5 голосов
/ 16 февраля 2012

Я пытаюсь научиться читать в файле access / zip с URL-адресом https в R. Это часть более крупного проекта по изучению картографии, который я беру на себя, чтобы расширить свои найденные навыки R ЗДЕСЬ (я тоже свяжу этот пост там) .

Это был план, но я получаю сообщение об ошибке от 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

Как я уже говорил, это учебный проект, поэтому я использую многие приемы, которыми я не являюсь

Фактический почтовый файл, который я пытаюсь загрузить, ЗДЕСЬ

Возможно, это не проблема программирования, а что-то не так с URLэто не позволяет использовать 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 Ответ

5 голосов
/ 24 февраля 2012

Хотя вы не поверили мне в 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 fast. Обязательно закройте соединение, чтобы потом можно было открыть свой ZIP-файл. Мне удалось открыть как PDF, так и базу данных Access.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...