Страницы: 1
RSS
Таблицы с сайта LBMA через power query, Загрузка таблиц в реальном времени с сайта
 
Добрый день!

Уважаемые Коллеги,

нужна помощь, необходимо получить динамические таблицы с сайта LMBA по золоту и серебру.
Если с золотом все просто, можно через запрос power query, то вот как быть с серебром, когда переключение таблиц происходит через HTML-элемент страницы?

https://www.lbma.org.uk/prices-and-data/precious-metal-prices#/table
требуется вынести котировки по серебру

Табличку с котировками по золоту прикладываю.

Заранее спасибо!
 
Код
let
    W = (x)=> Table.FromRecords(Json.Document(Web.Contents(x))),
    T = Table.FromRows({
        {"gold_am", "https://prices.lbma.org.uk/json/gold_am.json"},
        {"gold_pm",  "https://prices.lbma.org.uk/json/gold_pm.json"},
        {"silver", "https://prices.lbma.org.uk/json/silver.json"}
    }, {"Name", "URL"}),
    TR = Table.TransformColumns(T,{"URL", W}),
    Expand = Table.ExpandTableColumn(TR, "URL", {"d", "v"}),
    Tr2 = Table.TransformColumns(Expand, {{"v", (x)=> x{0}}, {"d", Date.From}})
in
    Tr2

43к строк превышают 300кб, не вкладывается на форум. Поскольку из api, то скорее всего в настройках PQ надо конфидициальность всю убрать иначе не даст спарсить.

Изменено: jiumohoo - 19.07.2025 13:49:09
 
На скрине все выглядит отлично, ровно, как требуется.
Как получить такой же результат? Подскажите ,пожалуйста, для чайника в power query:
куда нажать, или какой url необходимо внести по вкладке "из интернета"?
Либо, если не сложно, можно, пожалуйста, попросить Вас направить файл с Вашим результатом.

Заранее благодарю.
 
Таким вариантом файл https://dropmefiles.com/eUHt6

А вообще открываете PQ жмёте расширенный редактор и вставляете код.

2-й вариант.
Код
let

    Source = {
        [Name = "gold_am", URL = "https://prices.lbma.org.uk/json/gold_am.json "],
        [Name = "gold_pm", URL = "https://prices.lbma.org.uk/json/gold_pm.json "],
        [Name = "silver",  URL = "https://prices.lbma.org.uk/json/silver.json "]},

    get = (x) => [json = Json.Document(Web.Contents(x[URL])), 
                fields = (y) => 
            [Name = x[Name], 
            Date = Date.From(y[d]), 
            Usd = y[v]{0}],
            res = List.Transform(json, fields)][res],
    ltr = List.Transform(Source, get),
    tbl = Table.FromRecords(List.Combine(ltr), type table[Name = text, Date = date, Usd = number])
in
    tbl
Изменено: jiumohoo - 19.07.2025 21:42:13
 
Большое спасибо!
Все отлично работает!
 
Добрый день!

Еще раз большое спасибо за помощь,по LBMA все супер!

PQ - очень интересная тема для изучения, открывает огромные возможности, в целом начинаешь осознавать насколько excel еще не изучен и какой ты нуб))

Можно, пожалуйста, попросить сделать по аналогии котировки по меди с сайта:

https://www.westmetall.com/en/markdaten.php?action=table&field=LME_Cu_cash

нужны котировки с 2024 года, хватает навыков вытянуть каждый год на отдельный лист, а не в одну табличку, как Вы сделали по LBMA.

Спасибо.
 
pq
 
sotnikov, скажите а Html.Table в какой версии работает? У меня 2021pro там такой функции нету (((
 
В Excel 2024 уже есть. Точно не знаю, но возможно появится, если установить на Excel 2021 обновления.
Страницы: 1
Читают тему
Наверх