Страницы: 1
RSS
PQ. Поиск текста в HTML коде., Необходимо найти значения в тексте и вернуть в качестве таблицы.
 
Здравствуйте!

Есть пара страниц, с которых хотелось бы получать информацию по ценам.
Увы, "Добавление страницы с использованием примеров" в Power BI не работает на данном сайте.

Прошу подсказать, более-менее универсальный способ, который позволит получать данные о ценах с разных страниц.
Важно. Могут быть 2-3 цифры:
  • Полная стоимость курса
  • Оплата частями
  • Стоимость модуля
Желательно получить их все, вместе с сопровождающим текстом.

Описываю текущие запросы:

ЗАПРОС № 1:
Страница: https://netology.ru/programs/datamarketolog
Необходимая информация в коде страницы:



Сейчас в PQ запрос выглядит следующим образом:



Я обратил внимание, что необходимая информация находится между: "">" и  ""


ЗАПРОС № 2:

Страница: https://netology.ru/programs/marketing-internet-magazinov
Необходимая информация в коде страницы:




Прикладываю файл примера с подключениями.  
Изменено: ivanka - 18.10.2020 14:25:17
 
Доброе время суток
Цитата
ivanka написал:
более-менее универсальный способ
Увы, такого нет в природе. Вариант для приближения, основанный на CSS Selector Reference, благо есть такая возможность в Power BI Power Query, но напрочь отсутствующая в Excel его версии.
Код
let
    Source = Web.BrowserContents("https://netology.ru/programs/datamarketolog"),
    extract = Html.Table(Source, {{"price", "div.shared-landing-ui-kit-components-PhoneLeadForm-phoneLeadForm-module__title--2haaI"}})
in
    extract
 
Андрей VG, благодарю за вариант, буду тестировать.
Подскажите пожалуйста, в данном случае возможно решение, где поиск выполняется как по обычному тексту?
Т.е. на входе текст (весь код), сначала находится ₽, далее отступ назад чтобы найти ">. Значение между ними извлекается.

Это будет полная стоимость курса.
чтобы найти другие цены, описанная выше комбинация игнорируется и находится вторая.
Изменено: ivanka - 18.10.2020 16:14:09
 
Цитата
ivanka написал:
в данном случае возможно решение, где поиск выполняется как по обычному тексту?
Возможно конечно. Просто начинаете строить логическое решение.
Извлекаете подстроку до  ₽ и ищете последнее вхождение >, например, разбив по этому символу и последний элемент и будет. Смотрите описание функции Text.BetweenDelimiters и прочие. Можете даже варианты на форуме работы с регулярными выражениями посмотреть - хотя тут придётся попотеть. В прочем, про последнее есть и статья Регулярные выражения (RegExp) в Power Query - начните с неё, если такое решение вам подходит.

Для второго Url чуть по проще
Код
let
    Source = Web.BrowserContents("https://netology.ru/programs/marketing-internet-magazinov"),
    extract = Html.Table(Source, {
        {"name", "div.tn-atom[field=tn_text_1553702038850]"},
        {"price", "div.tn-atom[field=tn_text_1597142882137]"}
    },
    [RowSelector="div.tn-atom[field=tn_text_1553702038850]"]),
    filter = Table.SelectRows(extract, each ([price] <> null))
in
    filter
Изменено: Андрей VG - 18.10.2020 16:30:44
 
Андрей VG, Благодарю за второй запрос и за наводки. Буду пробовать!
Страницы: 1
Наверх