使用Casperjs,我从远程服务器下载了一些apk,但得到了一个空的apk (0字节)。
try {
this.echo("Attempting to download file ");
var fs = require('fs');
var appUrl = 'http://website.com/download/someapp.apk';
casper.download(appUrl, fs.workingDirectory+'/'+'newApk.apk');
} catch (e) {
this.echo(e);
}我在响应头中得到了这个。
Server: nginx/1.10.2
Date: Mon, 15 May 2017 06:49:10 GMT
Content-Length: 0
Connection: keep-alive
X-Robots-Tag: noindex
Location:http://website.com/download/someapp.apk
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Cache-Control: no-cache, max-age=0, no-cache, no-store, must-
revalidate, proxy-revalidate, no-transform
Pragma: no-cache发布于 2017-05-15 23:50:02
如果URL是正确的,并且您的代码有效,那么它应该可以工作。为了对您有所帮助,这里有一个最小的工作示例脚本,用于在当前目录中下载图像:
var casper = require('casper').create();
casper.start('https://duckduckgo.com', function() {
var url = 'https://duckduckgo.com/assets/logo_homepage.normal.v107.svg';
this.download(url, 'duckduckgo-logo.svg');
});
casper.run(function() {
this.echo('Done.').exit();
});如果它仍然不起作用,可能是安全问题。在这种情况下,尝试使用casperjs --web-security=no download.js运行您的脚本,或按如下方式配置您的Casper实例:
var casper = require('casper').create({
pageSettings: {
webSecurityEnabled: false
}
});或
casper.page.settings.webSecurityEnabled = false;https://stackoverflow.com/questions/43973578
复制相似问题