我正在尝试使用casperjs下载以下csv文件
var casper = require('casper').create({});
casper.start('http://69.50.252.196/');
casper.then(function(){
this.download('http://69.50.252.196/download.csv', 'downloaded.csv');
});
casper.run(function() {
this.exit();
});
download.csv
إختبار Arabic
آزمایشی Persian
测试 Chinese
測試 Chinese
испытание Russian
परीक्षा Hindi
δοκιμή Greek, Modern (1453-)
테스트 Korean
טעסט Yiddish
テスト Japanese
பரிட்சை Tamil
但下载的文件总是损坏并且字符损坏
downloaded.csv
"%.*('1 Arabic"
"2E'ج4ج Persian
Kص Chinese
,f Chinese
8A?KB0=85 Russian
*0@M7> Hindi
´؟؛¹¼® Greek" Modern (1453-)"
"L¤¸ Korean"
"طâلط Yiddish"
"ئ¹ب Japanese"
"ھ°؟ںحڑب Tamil"
请帮助,我不能使用child_process或wget或curl 必须使用casperjs下载文件
答案 0 :(得分:3)
解决方法直到修复: 我删除了编码功能并将wb的打开文件标志修改为w
OLD casper.js
fs.write(targetPath, cu.decode(this.base64encode(url, method, data)), 'wb');
新casper.js
fs.write(targetPath, this.base64encode(url, method, data), 'w');
OLD clientutils.js
return this.encode(this.getBinary(url, method, data));
新的clientutils.js
return this.getBinary(url, method, data);
此致
答案 1 :(得分:1)
这似乎是一个PhantomJS错误。 (我刚刚从1.9.0升级到1.9.2以确定:我希望this bug report可能意味着它已在1.9.1中修复。)
但它确实适用于SlimerJS。当我跑:
casperjs --engine=slimerjs test.js
我得到一个356字节的文件,就像我对wget一样(并且它显示为UTF-8,正确)。使用PhantomJS作为CasperJS引擎,我得到一个177字节的文件,它没有显示任何有用的东西。