Как получить котировку валют с ММВБ (JS)

Автор:Izmajlov
Дата:05.12.2013
Просмотров:4136
Скачиваний:1969
Оценка:, Оценок - 2
Сохранить в файле

Обсудить в форуме

Описание

Если нет подписки на сайте ММВБ, а получать котировки хочется, то есть вариант получения данных прямо из сайта.
Скопируйте код примера в файл с расширением .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;
}