Javascript 为什么casperjs download()函数没有';不行?
为什么下载()在我的脚本中不起作用 下载失败,即使是冗长的,也不会显示错误Javascript 为什么casperjs download()函数没有';不行?,javascript,phantomjs,casperjs,Javascript,Phantomjs,Casperjs,为什么下载()在我的脚本中不起作用 下载失败,即使是冗长的,也不会显示错误 var casper = require('casper').create({ verbose: true, logLevel: "debug", pageSettings: { webSecurityEnabled: false } }); casper.start('https://developer.android.com/sdk/index.html', func
var casper = require('casper').create({
verbose: true,
logLevel: "debug",
pageSettings: {
webSecurityEnabled: false
}
});
casper.start('https://developer.android.com/sdk/index.html', function() {
var url = this.evaluate(function() {
var selector = '#win-tools';
return __utils__.findOne(selector).getAttribute('href');
});
this.download(url, 'apps/android-sdk.exe');
});
casper.run();
我不明白,它应该可以工作。确保设置了userAgent。我还在evaluate中使用了Javascript,而不是
\uuuuutils\uuuuu
。我进行了测试,结果如下:
var casper = require("casper").create ({
waitTimeout: 5000,
stepTimeout: 5000,
verbose: true,
viewportSize: {
width: 1400,
height: 768
},
pageSettings: {
webSecurityEnabled: false
},
onWaitTimeout: function() {
this.echo('** Wait-TimeOut **');
},
onStepTimeout: function() {
this.echo('** Step-TimeOut **');
}
});
casper.userAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4');
casper.start('https://developer.android.com/sdk/index.html');
casper.then(function() {
var url = this.evaluate(function() {
var selector = document.getElementById('win-tools');
return selector.getAttribute('href');
});
this.echo('URL: ' + url);
this.download(url, 'apps/android-sdk.exe');
});
casper.run(function() {
this.echo('Done.').exit();
});
确保设置了userAgent。我还在evaluate中使用了Javascript,而不是
\uuuuutils\uuuuu
。我进行了测试,结果如下:
var casper = require("casper").create ({
waitTimeout: 5000,
stepTimeout: 5000,
verbose: true,
viewportSize: {
width: 1400,
height: 768
},
pageSettings: {
webSecurityEnabled: false
},
onWaitTimeout: function() {
this.echo('** Wait-TimeOut **');
},
onStepTimeout: function() {
this.echo('** Step-TimeOut **');
}
});
casper.userAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4');
casper.start('https://developer.android.com/sdk/index.html');
casper.then(function() {
var url = this.evaluate(function() {
var selector = document.getElementById('win-tools');
return selector.getAttribute('href');
});
this.echo('URL: ' + url);
this.download(url, 'apps/android-sdk.exe');
});
casper.run(function() {
this.echo('Done.').exit();
});
使用内置的casper.download()函数时,我也遇到了问题 具体来说,casper.download()似乎无法将检索到的内容随机写入磁盘。我在尝试下载作为附件发送的XML文件时遇到过这种情况(内容处置:附件) 这可能与以下问题有关: 以下是我的解决方法。我变了
casper.download(downlUrl, downlFileName);
致:
现在,您将在文件系统上保存一个base64编码的文件。您可以使用bash base64()等工具轻松地将其转换回其格式 使用内置的casper.download()函数时,我也遇到了问题 具体来说,casper.download()似乎无法将检索到的内容随机写入磁盘。我在尝试下载作为附件发送的XML文件时遇到过这种情况(内容处置:附件) 这可能与以下问题有关: 以下是我的解决方法。我变了
casper.download(downlUrl, downlFileName);
致:
现在,您将在文件系统上保存一个base64编码的文件。您可以使用bash base64()等工具轻松地将其转换回其格式 抱歉耽搁了。这对我不起作用。你试过下载更大的文件吗?我认为phantomjs的下载时间不能超过x秒。由于我的连接速度可能比你的慢,我无法使用,但你可以使用。你要下载的文件有多大?如果脚本超时,可以更改和。尽可能多地提供细节。抱歉耽搁了。这对我不起作用。你试过下载更大的文件吗?我认为phantomjs的下载时间不能超过x秒。由于我的连接速度可能比你的慢,我无法使用,但你可以使用。你要下载的文件有多大?如果脚本超时,可以更改和。尽可能多地提供细节。这是如何写入文件内容的?它不是只写字符串URL吗?@SeanClark,直接来自base64encode函数的文档:“使用客户端XMLHttpRequest同步地使用base64算法对资源进行编码。”(来源)它无论如何都不起作用。对于phantomJS,文件不能太大>2MB。这是一个狗屎problem@simonemainardi你有一个额外的
)
在你的downlur
上。这对我来说很有用。大文件成功率从20%提高到90%以上。这是如何写入文件内容的?它不是只写字符串URL吗?@SeanClark,直接来自base64encode函数的文档:“使用客户端XMLHttpRequest同步地使用base64算法对资源进行编码。”(来源)它无论如何都不起作用。对于phantomJS,文件不能太大>2MB。这是一个狗屎problem@simonemainardi你有一个额外的)
在你的downlur
上。这对我来说很有用。使用大型文件的成功率从20%提高到90%以上。