Урок 13-3 Курс валют.

[Д] Дмитрий, 21 июля 2016, 19:51 , 2 подписчика

При запуске проги, получаю такой результат:

Курс доллара:
                  руб. 71,0928 руб.
Курс евро:
                  руб. 77,9817 руб.

Учетные цены на драгоценные металлы
Золото Au:  2 853,20
Платина Pt:  2 206,16

Информацию брал с титульного листа ЦБ. html где был взят курс $ выглядит так:

<td class="week">
    <ins class="rubl">руб.</ins>
    71,0928
</td>

Как можно удалить <ins>, чтобы вывести только число, которое лежит внутри <td>?

У вас в исходнике используется xml файл. Как можно узнать зайдя на сайт, есть там xml или нет?

Обсуждение (3)


Michael Butlitsky Учитель

[M]

Узнать можно только у авторов сайта, погуглив или постараться подобрать урл.

Чтобы вырезать вложенный тег есть ряд способов, достаточно хитроумных: http://stackoverflow.com/questions/4679175/how-to-get-content-without-nested-elements-with-nokogiri http://stackoverflow.com/questions/6670865/how-do-i-exclude-a-nested-element-when-grabbing-content-using-nokogiri

Я вот такой использовал (описан во второй ссылке):

dollar_tags_info = div_teg.search("td[@class='weak']")[0].children.map {|ch| ch.text if ch.text?}
price_info_dollar = dollar_tags_info.last

Но это в любом случае ненадежный и плохо поддерживаемый, временный код. Если есть XML, надо брать его.


[Д]

Узнать можно только у авторов сайта, погуглив или постараться подобрать урл.

А можно как-то более раскрыть тему, потому как достать xml.txt совсем не просто, особенно когда не знаешь есть он или нет.


Michael Butlitsky Учитель

[M]

А тут раскрывать-то нечего. Если XML есть, то обычно гуглится по "%название_сайта% XML данные" или у сайта есть официальное API (как у твитера и многих других), или на сайте есть документация об этом (где-нибудь в разделе "для разработчиков" или подобном).

Если XML нет, то ниоткуда его и не возьмешь :)