Добрый день, Уважаемые Участники форума!!! Столкнулся с проблемой загрузки данных с сайта https://vetrf.ru/license/publicui?_action=listLicenses&orderBy=declarant&order=ASC При загрузке источника данных через интернет с указанием ссылки выше, Power Query не отображает данные, которые хотел бы получить. А именно данные по организациям с указанием всех доступных полей. Пример запроса прилагаю и картинки для понимания того, что хочу забрать с сайта. Как я понимаю Power Query может работать с таблицами, а если данные не представлены в виде таблицы на сайте, то эти данные как -то можно забрать? Спасибо!
В виде HTML-кода нужный вам кусок, в принципе не сложно по ссылке выцепить:
Код
let
Источник = Web.BrowserContents("https://vetrf.ru/license/publicui?_action=listLicenses&orderBy=declarant&order=ASC", [WaitFor=[Timeout=#duration(0, 0, 0, 2)]]),
Пользовательская1 = Text.BetweenDelimiters( Источник, "</ul>", " <ul class=")
in
Пользовательская1
но дальше нужно парсить уже его, удалять код, выцеплять нужные вам наименования и приводить к табличному виду. Даю наводку: для начала нужно придумать как из текста удалить все куски заключенные между символами "<" и ">".
Привет, Алексей. В Power BI это несколько проще - там в Power Query можно использовать такую вот штуку Power BI / Power Query (Using CSS Selectors). Некоторые вещи можно делать много проще, чем в Power Query для Excel.
Андрей VG, тыкался я в эту кнопку, как и ТС (судя по названиям шагов в примере) но т.к. в ХТМЛкоде этот список органзиций не размечен как таблица то этот инструмент его не находит. Поэтому предложил вот так. Я конечно, особо не погружался в эту тему, может можно и так. Я даже пробовал залезть в ссылку Печать реестра, где формируется шикарная таблица из всех организаций сразу, но в коде страницы этой таблицы тоже не видно, т.к. она формируется судя по всему каким-то запросом и чтобы её получить надо уже погружаться в методы GET, а это значит разбираться с API это тоже на долго.
Андрей_26 написал: А ни проще сделать на сайте "Печать реестра" сразу получаете таблицу всех ЮЛ/ИП, копируйте-вставляйте.
Добрый день, Андрей_26, я знаю что можно сделать печать реестра и скопировать и вставить. Но от этого не будет автоматического обновления данных.
Андрей Лящук, СУПЕР!!!!! Спасибо это как раз то, что нужно для решения данной задачи. Теперь попробую добавить остальные страницы реестра с 1 по Всего : 17294, При открытии запроса 1 вышла ошибка. выкладываю скрин.
Андрей VG, с Power BI / Power Query (Using CSS Selectors). пробовал тоже делать до написания на форум, через Добавить страницы используя примеры. Однако выходит ошибка не найдено селекторов для обозначений CSS...
Андрей Лящук, чем дальше в лес, тем толще партизаны! Это на каком языке? И какой мануал курить чтобы понимать что за код писать в консоли, чтобы получить строку для POST? И, кстати, можно ли этот код закинуть к сайту прямо в запросе, чтобы получать строку в запросе?
Андрей Лящук, СПАСИБО ОГРОМНОЕ!!!! вариант с POST работает прекрасно, и обновление происходит быстро. На выходе получается полный список всех заявителей!!!!
Javascript и немного jQuery Там на странице находится html форма <form></form>, внутри элементы <input />, именно их значения и шлются, вообще повезло, что заработало именно в таком исполнении, ибо только разрабу известно, чем и во что эти значения заворачиваются перед отправкой и как потом читаются В данном случае можно так собрать строку запроса
Код
fn=(s,optional i as nullable number,optional s1 as nullable text)=> let
i = if i = null then 1 else i,
id = Text.BetweenDelimiters(Source,"<input name=""id"" value=""",""" type=""checkbox"">",i),
s1 = if s1 = null then "id="&id else s1&",id="&id
in if id="" then Text.Start(s1,Text.Length(s1)-4) else @fn(s,i+1,s1),
Query=fn(Web.BrowserContents("https://vetrf.ru/license/publicui?_action=licenseListPrintSetup"))
Андрей Лящук, во, стало гораздо понятнее (тему в закладки), но в таком случае в Экселе эту штуку (Web.BrowserContents) не запустишь, только в PBI. Огромное спасибо. З.Ы. Поковырялся тут, оказывается можно и в Экселе запустить: Web.BrowserContents = Text.FromBinary(Web.Contents()) осталось всего ничего разобраться с JS и jQ Есть куда расти.
Андрей VG, так вроде и не надо. Андрей в своём варианте с POST запросом эту функцию не пользует. Там сайт на выходе даёт готовую таблицу, которую не нужно из css выуживать.