Страницы: 1
RSS
Импорт нетабличных данных по URL (Power Query)
 

Как импортировать данные со страницы?
Как получить все поля: имя, описание, ссылка, картинка, стоимость и другие поля?

Я пробую использовать "Html.Table".

Я получаю ошибку:
Expression.Error: The name "Html.Table" is not recognized. Make sure that it is written correctly.

Как правильно использовать Html.Table?
Какие есть другие способы выполнить импорт с помощью Power Query?

Картинка https://ibb.co/bsF7hc3
Изменено: excel_pl - 10.12.2021 21:17:40
 
Добрый день.
Примерно так.
Html.Table - это функция пока что только для PBI.
Вот горшок пустой, он предмет простой...
 
В параметрах запроса, в шаге "Источник" нажимаешь на шестеренку и в поле открыть файл как, выбираешь "Текстовый файл", и уже с этими данными в PQ делаешь все что нужно.
 
Доброго времени суток.
Цитата
Максим Бугриев написал:
нажимаешь на шестеренку и в поле открыть файл как, выбираешь "Текстовый файл", и уже с этими данными в PQ делаешь все что нужно.
ну так же не интересно

для работы запроса необходимо выполнить слияние ключей реестра из этого поста
Код
let
    url = 
        "https://baraholka.onliner.by/viewforum.php?f=608&start0",
    Source =  
        Web.Page("<script>
            try {
                d = document;
                let w = window.open('', '_blank'),
                wnd = new ActiveXObject('Shell.Application').windows(),
                ie = wnd.Item(wnd.count - 1);
                ie.navigate('"&url&"');
                while (ie.LocationURL !== '"&url&"' ? true : ie.Document.readyState !== 'complete') {}
                let $ = ie.Document.parentWindow.jQuery.noConflict();
                const fn=function(itm,selector,fx) {try {return fx($(itm).find(selector)[0]);} catch (err) {return null;}};
                d.write(
                    JSON.stringify($('.ba-tbl-list__table > tbody > tr:not(:has(.banner-helper-wrapper)):not(:has(th))')
                    .map(function(i, itm) {
                        return {
                            'img' : fn(itm,'.ph img',function(a) {return a.src;}),
                            'label' : fn(itm,'.ba-label',function(a) {return a.className.split('-').slice(-1)[0];}),
                            'caption' : fn(itm,'h2 a',function(a) {return a.text;}),
                            'href' : fn(itm,'h2 a',function(a) {return a.href;}),
                            'description' : fn(itm,'.ba-description',function(a) {return a.innerText;}),
                            'location' : fn(itm,'.ba-signature strong',function(a) {return a.innerText;}),
                            'user' : {
                                'name' : fn(itm,'.ba-signature a',function(a) {return a.text;}),
                                'href' : fn(itm,'.ba-signature a',function(a) {return a.href;})
                            },
                            'price' : {
                                'primary' : fn(itm,'.price-primary',function(a) {return parseFloat(a.innerText);}),
                                'torg' : fn(itm,'.cost-torg',function(a) {return a.innerText;})
                            }
                        };
                    }).toArray())
                )
                ie.Application.Quit();
            } catch (e) {
                d.write('<table><tr><th>error<tr><td>' + e.message)
            }
            delete d;
        </script>"),
    Data = 
        Table.FromRecords(Json.Document(Source{0}[Data]{0}[Children]{[Name="BODY"]}[Children][Text]{0}))
in
    Data
Страницы: 1
Наверх