ZIP-файл UrlFetchApp - PullRequest
       5

ZIP-файл UrlFetchApp

0 голосов
/ 03 марта 2019

Я пытаюсь получить zip-файл с кодом ниже:

  var options = {
    'method' :'get',
    'validateHttpsCertificates' : false,
    'escaping': true
  };
  var url = "https://www.propertypriceregister.ie/website/npsra/ppr/npsra-ppr.nsf/Downloads/PPR-ALL.zip/$FILE/PPR-ALL.zip" 
  var zipblob = UrlFetchApp.fetch(url, options).getBlob(); 
  var unzipblob = Utilities.unzip(zipblob); 

и получаю ошибку Address unavailable: https://www.propertypriceregister.ie/website/npsra/ppr/npsra-ppr.nsf/Downloads/PPR-ALL.zip/$FILE/PPR-ALL.zip

Обычно я загружаю файл с помощью wget - например,

wget --no-check-certificate 'https://www.propertypriceregister.ie/website/npsra/ppr/npsra-ppr.nsf/Downloads/PPR-ALL.zip/$FILE/PPR-ALL.zip'

, и это прекрасно работает - разархивированный файл является CSV.

Попробовал различные значения для параметров в скрипте приложений, с escaping=false и т. Д. Без особого успеха.

Буду очень признателен за помощь!Спасибо!

1 Ответ

0 голосов
/ 03 марта 2019

Как насчет этой модификации?

Точки модификации:

  • В вашем примере команды wget, в вашем случае, я подумал, что options не требуется.
  • Когда загружается zip-файл, обнаруживается, что mimeType равен application/x-zip из заголовка ответа.В случае Utilities.unzip() mimeType необходимо изменить на application/zip.
    • В этом случае я использовал setContentTypeFromExtension(), поскольку файл имеет имя файла, включая расширение.

Когда вышеуказанные точки отражаются в вашем сценарии,это делается следующим образом.

Модифицированный скрипт:

var url = "https://www.propertypriceregister.ie/website/npsra/ppr/npsra-ppr.nsf/Downloads/PPR-ALL.zip/$FILE/PPR-ALL.zip" 
var zipblob = UrlFetchApp.fetch(url).getBlob(); // Modified
zipblob.setContentTypeFromExtension(); // Added
var unzipblob = Utilities.unzip(zipblob);

Ссылка:

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