我正在尝试获取一个带有以下代码的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等,但没有太多成功。
如果能帮上忙,我会非常感激!谢谢!
发布于 2019-03-03 07:12:36
这个修改怎么样?
修改点:
options不是必需的。application/x-zip。如果是Utilities.unzip(),则需要将mimeType修改为application/zip。setContentTypeFromExtension(),因为文件名中包含extension.
当以上几点反映到您的脚本中时,它将如下所示。
修改后的脚本:
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);参考资料:
https://stackoverflow.com/questions/54963537
复制相似问题