2013-12-15 6 views
3

Я пытаюсь загрузить следующий файл CSV с помощью casperjscasperjs проблема загрузки файла 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 

но загруженный файл поврежден и всегда испортился символы

скачано.csv

"%.*('1 Arabic" 
"2E'ج4ج Persian 
Kص Chinese 
,f Chinese 
8A?KB0=85 Russian 
*[email protected]> Hindi 
´؟؛¹¼® Greek" Modern (1453-)" 
"L¤¸ Korean" 
"طâلط Yiddish"  
"ئ¹ب Japanese" 
"ھ°؟ںحڑب Tamil" 

Помогите пожалуйста, я не могу использовать child_process или Wget или свернуться файл должен быть загружен с помощью casperjs

ответ

3

после изучения решения для модулей casperjs найдено! проблема из-за base64encode данных в дополнение к обработке двоичных данных

Обход до исправления: Я удалил функцию кодирования и модифицированный открытый флаг файл для ВБ ш

СТАРЫХ 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

Это, как представляется 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 байт, который не отображает ничего полезного.

Смежные вопросы