После этого сообщения:
C# WebClient - Получение HTML из URI вместо CSV _
Проблема в том, что csv был скомпилирован с javascript в браузере. В том же сообщении рекомендуется использовать Casper js, но есть варианты, использующие c# или как можно использовать casper js для получения csv от OBIEE?
У кого-то есть пример?
Дополнительная информация:
Я нашел веб-страницу со следующими ссылками: xls, xml, csv
Когда я cli c каждая ссылка получает файл .csv, например, но если я попытаюсь использовать WebClient c# a got HTML с функциями javascript, я понял, что страница представляет собой что-то вроде шаблона со следующими функциями:
массив заполнены данными, которые мне нужны:
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()
}
}
функция для загрузки, кажется, что переписывает содержимое текущей страницы с данными в выбранных формат:
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;");
}
Если я использую опцию WebClient c#, я получаю этот HTML только с кодом javascript ... Я пытался использовать «Casper JS», но получаю тот же результат и не знаю, как вызвать функцию "загрузить" или получить переменную "datos".
Я попробую в Casper JS следующий код:
casper.start('URL').thenEvaluate(
function(){
data= datos;
});
casper.run(function() {
this.echo('my data:' + data);
this.exit(); });
Но я думаю, что ошибаюсь и мне нужно чтобы знать, как получить последний результат веб-страницы.