Имя: Пароль:
1C
 
Распарсить курсы валют Сербии с сайта
0 olo_lo1
 
29.09.23
10:06
Имеется сайт с курсами
https://nbs.rs/sr_RS/finansijsko_trziste/medjubankarsko-devizno-trziste/kursna-lista/zvanicni-srednji-kurs-dinara/index.html

Стоит задача каждый день подгружать данные в 1С автоматом.

попробовал так
Сервер="nbs.rs";
Ури="/sr_RS/finansijsko_trziste/medjubankarsko-devizno-trziste/kursna-lista/zvanicni-srednji-kurs-dinara/index.html";

Соединение=Новый HTTPСоединение(Сервер,,,,,,Новый ЗащищенноеСоединениеOpenSSL);
Запрос=Новый HTTPЗапрос(Ури);
Ответ=Соединение.Получить(Запрос);
Результат=Ответ.ПолучитьТелоКакСтроку();

Возвращает код сайта какой то с разметками, а вот самих курсов там нет. Видимо как то это скрыто. В этом я полный 0. Помогите как это лучше распарсить.
1 ads55
 
29.09.23
10:11
(0) а веб-сервис их смотрели: https://webservices.nbs.rs/CommunicationOfficeSiteDoc/SerCyrl/default.html
?
2 Asmody
 
29.09.23
10:13
3 olo_lo1
 
29.09.23
10:13
(1) Зашел по ссылке. ничего не понятно. Где хоть пример живой посмотреть можно ?
4 olo_lo1
 
29.09.23
10:16
(2) о, уже хоть что то распарсить можно. спасибо!

Но конечно если у них есть веб сервис рабочий, знать бы как с ним работать.

</tr></thead><tbody><tr><td>EUR</td><td>978</td><td>ЕМУ</td><td>1</td><td>117,1996</td></tr><tr><td>AUD</td><td>36</td><td>Аустралија</td><td>1</td><td>71,5155</td></tr><tr><td>CAD</td><td>124</td><td>Канада</td><td>1</td><td>82,1416</td></tr><tr><td>CNY</td><td>156</td><td>Кина</td><td>1</td><td>15,1675</td></tr><tr><td>CZK</td><td>203</td><td>Чешка Република</td><td>1</td><td>4,8145</td></tr><tr><td>DKK</td><td>208</td><td>Данска</td><td>1</td><td>15,7123</td></tr><tr><td>HUF</td><td>348</td><td>Мађарска</td><td>100</td><td>29,9124</td></tr><tr><td>INR</td><td>356</td><td>Индија</td><td>1</td><td>1,3330</td></tr><tr><td>JPY</td><td>392</td><td>Јапан</td><td>100</td><td>74,1300</td></tr><tr><td>KWD</td><td>414</td><td>Кувајт</td><td>1</td><td>358,2990</td></tr><tr><td>NOK</td><td>578</td><td>Норвешка</td><td>1</td><td>10,3595</td></tr><tr><td>RUB</td><td>643</td><td>Руска Федерација</td><td>1</td><td>1,1420</td></tr><tr><td>SEK</td><td>752</td><td>Шведска</td><td>1</td><td>10,1613</td></tr><tr><td>CHF</td><td>756</td><td>Швајцарска</td><td>1</td><td>121,2117</td></tr><tr><td>AED</td><td>784</td><td>Уједињени Арапски Емирати</td><td>1</td><td>30,1501</td></tr><tr><td>MKD</td><td>807</td><td>Република Северна Македонија</td><td>1</td><td>1,9001</td></tr><tr><td>GBP</td><td>826</td><td>Велика Британија</td><td>1</td><td>135,3657</td></tr><tr><td>USD</td><td>840</td><td>САД</td><td>1</td><td>110,7537</td></tr><tr><td>BYN</td><td>933</td><td>Белорусија</td><td>1</td><td>43,7737</td></tr><tr><td>RON</td><td>946</td><td>Румунија</td><td>1</td><td>23,5501</td></tr><tr><td>TRY</td><td>949</td><td>Турска</td><td>1</td><td>4,0304</td></tr><tr><td>BGN</td><td>975</td><td>Бугарска</td><td>1</td><td>59,9232</td></tr><tr><td>BAM</td><td>977</td><td>Босна и Херцеговина</td><td>1</td><td>59,9232</td></tr><tr><td>PLN</td><td>985</td><td>Пољска</td><td>1</td><td>25,2591</td></tr><tr><td>ATS</td><td>40</td><td>Аустрија</td><td>1</td><td>8,5172</td></tr><tr><td>BEF</td><td>56</td><td>Белгија</td><td>100</td><td>290,5302</td></tr><tr><td>FIM</td><td>246</td><td>Финска</td><td>1</td><td>19,7116</td></tr><tr><td>FRF</td><td>250</td><td>Француска</td><td>1</td><td>17,8670</td></tr><tr><td>DEM</td><td>280</td><td>Немачка</td><td>1</td><td>59,9232</td></tr><tr><td>GRD</td><td>300</td><td>Грчка</td><td>100</td><td>34,3946</td></tr><tr><td>IEP</td><td>372</td><td>Ирска</td><td>1</td><td>148,8128</td></tr><tr><td>ITL</td><td>380</td><td>Италија</td><td>100</td><td>6,0529</td></tr><tr><td>LUF</td><td>442</td><td>Луксембург</td><td>100</td><td>290,5302</td></tr><tr><td>PTE</td><td>620</td><td>Португалија</td><td>100</td><td>58,4589</td></tr><tr><td>ESP</td><td>724</td><td>Шпанија</td><td>100</td><td>70,4384</td></tr></tbody></table><script>$(document).ready(function() {indexSrednjiKursListaWidget = $('.indexsrednjiKursListaTable');var wrapper = $('#index\
5 ads55
 
29.09.23
10:17
(3) у меня готового нет, к сожалению. :(
Если в выходные время будет - попробую что-то написать.
6 olo_lo1
 
29.09.23
10:18
(5) а где ты описание возмешь, его же тут нет?
7 ads55
 
29.09.23
10:28
(6) сейчас посмотрел. Там описание есть, проблема в том, что там логин/пароль надо даже к бесплатным сервисам....
Походу остается только (2) парсить.
8 Djelf
 
29.09.23
12:48
(7) Не сильно то и сложно пропарсить табличку.
Хотя наверное есть решение покрасивее...
Хост="nbs.rs";
Адрес="/kursnaListaModul/srednjiKurs.faces?lang=cir";
HTTPСоединение = Новый HTTPСоединение(Хост,443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); 
HTTPЗапрос = Новый HTTPЗапрос(Адрес); 
Результат =  HTTPСоединение.Получить(HTTPЗапрос); 
ЧтениеHTML = Новый ЧтениеHTML;
ЧтениеHTML.УстановитьСтроку(Результат.ПолучитьТелоКакСтроку());
ПостроительDOM = Новый ПостроительDOM;
ДокументHTML = ПостроительDOM.Прочитать(ЧтениеHTML);
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку("UTF-8");
ЗаписьDOM = Новый ЗаписьDOM;
ЗаписьDOM.Записать(ДокументHTML.Тело, ЗаписьXML);
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(ЗаписьXML.Закрыть());
ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
Разименовыватель = Новый РазыменовательПространствИменDOM(ДокументDOM);
ВыражениеXPath = ".//*/table[@id='index:srednjiKursLista']/tbody/tr/td/text()";
РезультатXPath = ДокументDOM.ВычислитьВыражениеXPath(ВыражениеXPath, ДокументDOM, Разименовыватель);

ТаблицаКурсов = Новый ТаблицаЗначений;
ТаблицаКурсов.Колонки.Добавить("х1");
ТаблицаКурсов.Колонки.Добавить("х2");
ТаблицаКурсов.Колонки.Добавить("х3");
ТаблицаКурсов.Колонки.Добавить("х4");
ТаблицаКурсов.Колонки.Добавить("х5");
ТаблицаКурсов.Колонки.Добавить("х6");

Счетчик=0;
Пока Истина Цикл
	ЭлементDOM = РезультатXPath.ПолучитьСледующий();
	Если ЭлементDOM=Неопределено Тогда
		Прервать;
	КонецЕсли;
	Если Счетчик=0 Тогда
		СтрокаТаблицы = ТаблицаКурсов.Добавить();
	КонецЕсли;
	СтрокаТаблицы.Установить(Счетчик,ЭлементDOM.ТекстовоеСодержимое);
	Счетчик=Счетчик+1;
	Если Счетчик=5 Тогда
		Счетчик=0;
	КонецЕсли;
КонецЦикла;
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший