Страницы: 1
RSS
Отфильтровать соседние строки в PowerQuery
 
Добрый день!
Не хватает знаний для решения задачи, прошу помощи опытных коллег.


Пытаюсь парсить нужные веб-странички с помощью PowerQuery.
На отдельных страницах код разбивается на подстроки
Код
<div itemprop="description">
<p>
<strong>Материалы:</strong> 
экокожа премиум, натуральная кожа
<br>
<strong>Каркас:</strong> 
деревянные, из массива бука 4 цветов - венге, орех гамильтон, орех, темный орех аида
</p> 
</div>

Да, я могу отфильтровать этот текст по "strong" или по "материалы" или по "каркас". Но, как мне прописать +1 строку снизу к результатам работы фильтра?

Изменено: maksbuh - 06.11.2022 16:44:49
 
Вариант
Код
let
    from = "<div itemprop=""description"">
<p>
<strong>Материалы:</strong> 
экокожа премиум, натуральная кожа
<br>
<strong>Каркас:</strong> 
деревянные, из массива бука 4 цветов - венге, орех гамильтон, орех, темный орех аида
</p> 
</div>",
    lst = List.Select( Text.Split( from,"<strong>"),(x)=>Text.Contains(x,"strong")),
    f = (x)=> List.Accumulate({"</strong>","<br>","</p>","</div>"},x,(s,c)=>Text.Trim( Text.Replace(s,c,""))),
    to = Text.Combine( List.Transform( lst,f))
in
    to
 
nacimjon, спасибо!

Немного понятно, что делается вашим кодом. Мне до такого пока еще далеко.

Но! У вас в кавычках жестко задана конструкция, из которой делается отбор. А на деле содержимое этого html тега может меняться на каждой странице (например, будут другие материалы или каркас). И появляется вопрос, как автоматически захватить этот кусок кода?
 
maksbuh, так вы покажите несколько вариантов того, что надо парсить и какой нужен итог.
Вот горшок пустой, он предмет простой...
 
Злые MS не хотят добавлять Html.Table в Excel...
Все равно решаемо, но PooHkrd прав. Вот нет у меня понимания, что нужно на выходе. И как фильтрация проводиться должна.
 

surkenny, PooHkrd,

Там все просто до неприличного ))) и это достаточно типовой случай

Для примера:

http://www.stoross.ru/chairs/203945.html?color=100490
http://www.stoross.ru/chairs/16996.html

Характеристики на этих страницах не прописаны в отдельных блоках/тегах и их не вывести по-отдельности + меняется состав и показатели характеристик.

По-хорошему, все характеристики нужно вывести в отдельные жестко заданные столбцы (Материал/Крестовина/Подлокотники/итп), куда они будут попадать с разных страниц сайта (это могу).

Пока игрался в PQ, увидел, что если к первому столбцу с кодом применить Усечь, то висящие строки уходят.
Текст становится в таком виде

Код
<div itemprop="description"><p><strong>Материал:</strong> синтетическая ткань<br /> <strong>Крестовина:</strong> полиамидная опора<br /> <strong>Подлокотники: </strong> пластик, нерегулируемые</p> </div> 


Это немного решает проблему, такую строку я могу разобрать. Но, скорее всего, есть более грамотное решение?

Изменено: maksbuh - 07.11.2022 14:38:42
Страницы: 1
Наверх