|
Распарсить курсы валют Сербии с сайта | ☑ | ||
---|---|---|---|---|
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; КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |