phantomjs - casperjs下载csv文件时出现问题

标签 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();
});

下载.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
*0@M7> Hindi
´؟؛¹¼®  Greek"   Modern (1453-)"
"L¤¸    Korean" 
"طâلط   Yiddish"    
"ئ¹ب    Japanese"   
"ھ°؟ںحڑب    Tamil"  

请帮忙,我无法使用 child_process 或 wget 或 curl 必须使用 casperjs 下载文件

最佳答案

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

修复之前的解决方法: 我删除了编码功能并将wb的打开文件标志修改为w

旧 casper.js

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

新 casper.js

fs.write(targetPath, this.base64encode(url, method, data), 'w');

旧 clientutils.js

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

新的 clientutils.js

return this.getBinary(url, method, data);

问候

关于phantomjs - casperjs下载csv文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20599422/

相关文章:

python - 为什么我的 Python 子进程在由 supervisord 管理时会出错?

javascript - CasperJS:将抓取的数据导出到结构化的 Excel 或 CSV

javascript - CasperJS 表单未在 AngularJS 中提交

javascript - 如何在Casper js中设置测试用例失败并传递消息?

ruby - 如何使用 webmock 伪造对 Capybara/poltergeist 的响应?

java - PhantomJSDriver 找到了 Element 但仍未定义

asynchronous - 脚本错误(:0) when trying to run async test in mocha-phantomjs

seo - 动态 AJAX Meteor 网站 - 如何使其可抓取?

memory-leaks - phantomjs 没有关闭并留下孤立进程

javascript - 如何模拟点击谷歌地点自动完成结果?