|
|
|
Распарсить курсы валют Сербии с сайта | ☑ | ||
|---|---|---|---|---|
|
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
|
Бери вот эту ссылку https://nbs.rs/kursnaListaModul/srednjiKurs.faces?lang=cir
|
|||
|
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;
КонецЕсли;
КонецЦикла;
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |