Phantomjs casperjs问题下载csv文件

Phantomjs casperjs问题下载csv文件,phantomjs,casperjs,Phantomjs,Casperjs,我正在尝试使用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();

我正在尝试使用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();
});
下载.csv

إختبار  Arabic
آزمایشی Persian
测试  Chinese
測試  Chinese
испытание   Russian
परीक्षा Hindi
δοκιμή  Greek, Modern (1453-)
테스트 Korean
טעסט    Yiddish
テスト Japanese
பரிட்சை Tamil
"%.*('1 Arabic" 
"2E'ج4ج Persian
Kص  Chinese
,f  Chinese
8A?KB0=85   Russian
*0@M7> Hindi
´؟؛¹¼®  Greek"   Modern (1453-)"
"L¤¸    Korean" 
"طâلط   Yiddish"    
"ئ¹ب    Japanese"   
"ھ°؟ںحڑب    Tamil"  
但是下载的文件总是损坏,并且得到损坏的字符

下载的.csv

إختبار  Arabic
آزمایشی Persian
测试  Chinese
測試  Chinese
испытание   Russian
परीक्षा Hindi
δοκιμή  Greek, Modern (1453-)
테스트 Korean
טעסט    Yiddish
テスト Japanese
பரிட்சை Tamil
"%.*('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_过程或wget或curl
文件必须使用casperjs下载这似乎是一个PhantomJS错误。(我刚刚从1.9.0升级到1.9.2:我希望这意味着它在1.9.1中得到了修复。)

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();
});
不过,它确实适用于更苗条的JS。当我跑步时:

casperjs --engine=slimerjs test.js

我得到了一个356字节的文件,与我使用wget时完全一样(它正确地显示为UTF-8)。使用PhantomJS作为CasperJS引擎,我得到一个177字节的文件,它没有显示任何有用的内容。

在研究CasperJS模块解决方案后发现! 除了处理二进制数据外,由于Base64对数据进行编码而导致的问题

修复前的解决方法: 我删除了编码函数,并将wb的open file标志修改为w

OLD casper.js

fs.write(targetPath, cu.decode(this.base64encode(url, method, data)), 'wb');
fs.write(targetPath, this.base64encode(url, method, data), 'w');
新建casper.js

fs.write(targetPath, cu.decode(this.base64encode(url, method, data)), 'wb');
fs.write(targetPath, this.base64encode(url, method, data), 'w');
OLD clientutils.js

return this.encode(this.getBinary(url, method, data));
return this.getBinary(url, method, data);
新建clientutils.js

return this.encode(this.getBinary(url, method, data));
return this.getBinary(url, method, data);
问候