Javascript C#WebClient-从URI获取HTML,而不是从OBIEE获取CSV

Javascript C#WebClient-从URI获取HTML,而不是从OBIEE获取CSV,javascript,c#,csv,casperjs,obiee,Javascript,C#,Csv,Casperjs,Obiee,在这篇文章之后: _ 问题是csv是在浏览器中用javascript编译的。在同一篇文章中,推荐使用Casperjs,但也有使用c#的选项,或者如何使用Casperjs从OBIEE获得csv 有人举过这样的例子吗 其他信息: 我发现了一个包含以下链接的网页: xls、xml、csv 例如,当我点击每个链接时,我会得到一个.csv文件,但如果我尝试使用WebClient c#a,它会得到带有javascript函数的HTML,我知道该页面类似于一个具有以下函数的模板: 填充了我需要的数据的数组:

在这篇文章之后:

_

问题是csv是在浏览器中用javascript编译的。在同一篇文章中,推荐使用Casperjs,但也有使用c#的选项,或者如何使用Casperjs从OBIEE获得csv

有人举过这样的例子吗

其他信息:

我发现了一个包含以下链接的网页: xls、xml、csv

例如,当我点击每个链接时,我会得到一个.csv文件,但如果我尝试使用WebClient c#a,它会得到带有javascript函数的HTML,我知道该页面类似于一个具有以下函数的模板:

填充了我需要的数据的数组:

var datos = [];
函数填充该数组:

function llenaArreglo(){ 
 var serie = new Array("12/01/1984", "18/01/1984", "DTF", "36,45%");
    datos.push(serie);
。。。它对每个数据元组重复相同的代码(很有趣),填充数据数组

从请求中选择下载类型的函数:

function downloadByType(){
    var type = gup("download_type", location.href);
    
    if(type=="csv"){
        downloadCsv()
    }
    if(type=="xml"){
        downloadXml()
    }
}
函数下载时,似乎要使用choosen格式的数据重新写入当前页面的内容:

function download(data, filename, type) {
    var a = document.createElement("a"),
    //textEncoder = new TextEncoder('utf-16');
    //var contentEncoded = textEncoder.encode([data]);
    file = new Blob([data], {type: type});
    if (window.navigator.msSaveOrOpenBlob) // IE10+
        window.navigator.msSaveOrOpenBlob(file, filename);
    else { // Others
        var url = URL.createObjectURL(file);
        a.href = url;
        a.download = filename;
        document.body.appendChild(a);
        a.click();
        setTimeout(function() {
            document.body.removeChild(a);
            window.URL.revokeObjectURL(url);  
        }, 0); 
    }
}
以及csv格式的功能:

function downloadCsv(){
    var dataCsv = "\ufeff"+"fecha_inicio;fecha_final;tasa_interes;valor_tasa\n";
    for(var i=0; i<datos.length;i++){
        serie = datos[i];
        var fecha_inicio = serie[0];
        var fecha_final = serie[1];
        var tasa_interes = serie[2];
        var valor_tasa = validarNulo(serie[3]);
                                            
        dataCsv += fecha_inicio+";"+fecha_final+
        ";"+tasa_interes+
        ";"+valor_tasa+"\n";
    }
    download(dataCsv, "Tasas_captacion_semanales_DTF_CDT_TCC.csv", "data:text/txt;charset=windows-1252;");
}

但我觉得我错了,我需要知道如何获得网页的最后结果。

我用CasperJS解决了我的问题,这不是理想的解决方案,但它是一个解决方案。我对代码进行了删减以获得变量“datos”(带数据的数组):


您无法从网络客户端获取CSV。您将得到一个HTML响应,其中响应体包含csv。所以你已经得到了HTML.hi,我得到了一个HTML代码,但是它有生成输出文件(csv,xml)的javascript函数,我发现了一个数组,其中的值使用了这些转换函数,我可以将其删除,但我在另一篇文章中读到,可以使用“casperjs”预处理(我使用它)URL并直接获取csv文件。。。但是我需要一些关于如何使用“casperjs”来实现这一点的帮助:)如果您正在进行预处理,那么如何直接获取数据呢?您正在处理数据,无法直接获取。预处理与直接相反。你不能两者都做。我已经添加了“附加信息”
casper.start('URL').thenEvaluate(
function(){
    data= datos;
});

casper.run(function() {
    this.echo('my data:'    + data);
    this.exit();        });
var casper = require('casper').create();
casper.start('uri', function() {
    //this code copied from other post about casperjs
    var myVarInCasper = this.evaluate(function() {
        var myVarInBrowser;
        myVarInBrowser = datos;
        return myVarInBrowser;
    });
    var dataCsv = "\ufeff"+"col001;col002;col003;col003\n";
    //the same code, copied from HTML 
    for(var i=0; i<myVarInCasper.length;i++){
        serie = myVarInCasper[i];
        var col1 = serie[0];
        var col2 = serie[1];
        var col4 = serie[2];
        var col5 = serie[3];
        dataCsv += col1+";"+col2+";"+col3+";"+col4+"\n";
    }
    this.echo(dataCsv);
});
casper.run();
casperjs.exe sample.js > result.csv