Как получить котировку валют с ММВБ (JS)
Сохранить в файлеОбсудить в форуме
Описание
Если нет подписки на сайте ММВБ, а получать котировки хочется, то есть вариант получения данных прямо из сайта.
Скопируйте код примера в файл с расширением .js ,и запустите на компьютере с выходом в Инет
Скопируйте код примера в файл с расширением .js ,и запустите на компьютере с выходом в Инет
Текст примера
/*******************************************/ /* Скрипт, который показывает как получить */ /* с сайта ММВБ котировку EURRUB_TOM */ /* за последнюю дату от текущей */ /* Измайлов Феликс 29-11-2013 */ /* for_cv@mai.ru */ /*******************************************/ var obj = new ActiveXObject("Microsoft.XMLHTTP"); var fso = new ActiveXObject("Scripting.FileSystemObject"); var currPath = WScript.ScriptFullName.substr(0,WScript.ScriptFullName.lastIndexOf("\\")); var fOut = fso.OpenTextFile(currPath+"\\micex.txt", 2,true); function getInfo(secid,fxDate){ var res; url="http://www.micex.ru/issrpc/marketdata/currency/selt/history/short/result.json?boardid=CETS&secid="+secid+"&date="+fxDate+"&lang=ru"; obj.Open("POST", url, false); obj.onreadystatechange = function(){ if (obj.readyState == 4 /* complete */) { if (obj.status == 200) { var section = eval('(' + obj.responseText + ')'); if(!section[1]){ res = false; obj.abort(); } else{ res = true; for(var key in section[1]){ /* Здесь можно и не в ТХТ записывать */ /* варианты DBF, XML и т.п. */ fOut.WriteLine(key+":"+section[1][key]); } obj.abort(); } } } } obj.send(null); return res; } /* Получаем текущую дату, преобразуем к виду yyyy-mm-dd */ /* вызываем функцию получения ИНФО в ММВБ, если False */ /* уменьшаем на один день, и так до первого успешного */ /* получения информации */ var dRep = new Date(); strDay = ((dRep.getDate())<10)? "0"+(dRep.getDate()):(dRep.getDate()); strMonth = ((dRep.getMonth()+1)<10)? "0"+(dRep.getMonth()+1):(dRep.getMonth()+1); strDate = dRep.getYear()+"-"+strMonth+"-"+strDay; /* счетчик */ var i=1; while(!getInfo("EUR_RUB__TOM",strDate)){ /* минус 1 день умноженный на счетчик */ var dRep = new Date(dRep.valueOf()-(i*86400000)); strDay = ((dRep.getDate())<10)? "0"+(dRep.getDate()):(dRep.getDate()); strMonth = ((dRep.getMonth()+1)<10)? "0"+(dRep.getMonth()+1):(dRep.getMonth()+1); strDate = dRep.getYear()+"-"+strMonth+"-"+strDay; i+=1; }