Как спарсить определённую рубрику в хлебных крошках

Тема в разделе "Шаблон вывода", создана пользователем Пётр_Викторович, 30 авг 2014.

  1. Пётр_Викторович

    Пётр_Викторович New Member Пользователи

    Регистрация:
    19 фев 2014
    Сообщения:
    19
    Допустим есть хлеблые крошки вида:
    HTML:
    <div class="breadcrumbs"><a href="index.html">главная</a> > <a href="part-1.html">раздел-1</a> > <a href="part-1.html">раздел-1</a> > ... > <a href="part-N.html">раздел-N</a>... > <a href="part-last.html">раздел-последний</a> > Наименование страницы<div>
    Мы не знаем количества хлебных крошек, названия и их ссылки. Т.е. может отталкиваться только от первого, последнего и порядкового значения в зависимости от разделителя (в данном случает " > ")
    Как правильно настроить парсер, что бы он парсил имена хлебных крошек только с определённого раздела (например с третьего) по определённый (например по шестой) или вообще определённый (к примеру только восьмой)?
    И как настроить парсер, что бы он парсил только имя последнего раздела?
     
  2. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Все довольно просто.
    Применяете макрос [BREADCRUMBS(</a> >|#)] он оставит вам лишь члова из хлебных крошек с разжелителями.
    В данном случае
    Код:
    будет главная#раздел-1#раздел-1#... > раздел-N... > раздел-последний#Наименование страницы 
    Ну а дальше все просто, либо применяйте регулярные выражения либо просто удаляйте лишнее применив поверх BREADCRUMBS макрос REPLACE .
    Я на регулярках покажу.
    Код:
    re:^(.*?)#(.*?)#(.*?)$|$1 - заберет только будет главная
    re:^(.*?)#(.*?)#(.*?)$|$3 - заберет ВСЕ с 3-го и до конца раздел-1#... > раздел-N... > раздел-последний#Наименование страницы 
    re:(.*?)#| - Оставит только конец Наименование страницы 
    Все остальные вариации работают по принципу, что именно надо. т.е. все зависит от того как нужно и что нужно. Удаляя справа и слева определенное количество, вы добьетесь того результата, который хотите.
     
    Последнее редактирование: 30 авг 2014
  3. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    У вас динамически длинна строки если не затронута то можно в конец всех колонок вывести все категории и потом заменить так
     
  4. Пётр_Викторович

    Пётр_Викторович New Member Пользователи

    Регистрация:
    19 фев 2014
    Сообщения:
    19
    Спасибо за ответы.
    Мне конкретно надо вывести последнюю рубрику из хлебных крошек.
    На разных страницах товаров глубина хлебных крошек разная, поэтому отталкиваться от первой не могу.
     
  5. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Тогда опираясь из того что привели для примера выше, можно регулярным выражением поставить метки для последней категории из крошек
    Есть оконцовка крошек вида:
    Добавим в глобальную поиск-замену (сочетание клавишь ctrl+shift+r) :
     
  6. Пётр_Викторович

    Пётр_Викторович New Member Пользователи

    Регистрация:
    19 фев 2014
    Сообщения:
    19
    Я прильно понимаю, есть в конкретно случает разделитель является картинкой , то мне надо будет написать выражение

    ?
     
  7. Пётр_Викторович

    Пётр_Викторович New Member Пользователи

    Регистрация:
    19 фев 2014
    Сообщения:
    19
    Я не часто пользуюсь Content Downloader, поэтому есть ещё вопрос:
    В моем случае хлебные крошки обозначены границей <CD_GRAN_4!> как мне их правильно выделить для приведённого выше регулярного выражения?
     
  8. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Да только экранировать точку надо
     
  9. Пётр_Викторович

    Пётр_Викторович New Member Пользователи

    Регистрация:
    19 фев 2014
    Сообщения:
    19
    Что-то у меня не получается :(
    Помогите, пожалуйста, разобраться на конкретном примере
    Ссылки недоступны для гостей
    Мне отсюда надо вытащить Название (FBT 154-165D) , Цену (200) и последний раздел (Строчные трансформаторы).
    Если с первыми двумя понятно, то с разделом у меня не получается :(
     
  10. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Вы явно не читаете что вам пишут. Очень жаль.
    Видимо дальше начнутся вопросы, как собрать ссылки
     

    Вложения:

    Последнее редактирование: 30 авг 2014
  11. Пётр_Викторович

    Пётр_Викторович New Member Пользователи

    Регистрация:
    19 фев 2014
    Сообщения:
    19
    Спасибо, я не понимал, как правильно нужно оформить регулярное выражение.
    Код присланный Вами работает, за что я очень благоданет. Но он сделан на расчет третьего элемента, а мне нужен расчет последнего.
    Когда я за место того регулярного выражения вставляю
    Ни чего не получается.
    Простите, но я не понимаю как в данном случае оформить регулярное выражения
     
  12. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Границей зацепите от <div class="breadcrumbs"> до </div>
    В дополнительная настройка границ, добпвьте для нее в поиск-замена следующее
    Код:
    re:<img src=".*?/images/icons/breadcrumbs_arrow.*?>|<->
    re:<->[^<>]+$|
    re:^.*<->|
     
  13. Пётр_Викторович

    Пётр_Викторович New Member Пользователи

    Регистрация:
    19 фев 2014
    Сообщения:
    19
    Теперь все заработало!
    Спасибо огромное!!
     
  14. alamina.moon

    alamina.moon Модератор Команда форума Модератор

    Регистрация:
    14 янв 2013
    Сообщения:
    214
    Границей зацепите от <div class="breadcrumbs"> до </div> например это будет <CD_GRAN_1!>

    и код
    Код:
    [REPLACE(re:.*<a[^>]*>([^<]+)</a>.*|$1)]<CD_GRAN_1!>[/REPLACE]
     
  15. vipsite

    vipsite Member Пользователи

    Регистрация:
    22 июл 2017
    Сообщения:
    55
    Поскажите по хлебным крошкам!!!
    Надо из такого вида, пример карточки товара Ссылки недоступны для гостей и из этого кода хлебных крошек:
    <div class="crumbs" xmlns:v="Ссылки недоступны для гостей"><span typeof="v:Breadcrumb"><a rel="v:url" property="v:title" href="Ссылки недоступны для гостей"><span class="icon-crumbs-home"/></span>На главную</a> / <span typeof="v:Breadcrumb"><a rel="v:url" property="v:title" href="Ссылки недоступны для гостей">Другое</a> / <span typeof="v:Breadcrumb"><a rel="v:url" property="v:title" href="Ссылки недоступны для гостей">Шлейфы</a> / <span typeof="v:Breadcrumb"><a rel="v:url" property="v:title" href="Ссылки недоступны для гостей">Samsung</a> / <span typeof="v:Breadcrumb"><span rel="v:url" property="v:title">Шлейф Samsung J700F Galaxy J7 with home button and HF connector</span></span></div>

    Вытянуть только это, в именно таком виде: Другое/Шлейфы/Samsung
    без "На главную" и без последнего названия товара.. Ах да, вложений может быть и больше, например ../../../../../ и т.д. Я просто в регулярных выражениях не силен, а автозаменами не пойму как сделать((( выручайте!

    Подскажите как лучше всего реализовать!!
     
  16. aresa

    aresa Well-Known Member Пользователи

    Регистрация:
    17 окт 2015
    Сообщения:
    180
    В поиск=замена вставьте:

    <{skip}>|
    {skip}/|
    /{skip}|
     
    Root нравится это.
  17. vipsite

    vipsite Member Пользователи

    Регистрация:
    22 июл 2017
    Сообщения:
    55
    спасибо!
    но сделал вот так:
    </a> / |/
    <{skip}>|
    {skip}>|

    в итоге получилось на выходе с одной карточки товара вот так: Сенсорные экраны/Lenovo/Сенсор Lenovo S580 black orig

    так вот как мне в конце убирать название товара? чтобы получилось только так на этом примере: Сенсорные экраны/Lenovo
     
  18. olkagamkiv

    olkagamkiv Member Пользователи

    Регистрация:
    30 июл 2017
    Сообщения:
    10
    Город:
    Львов
    Проставьте еще в конце /{skip}|[REV]. Вот так:
    </a> / |/
    <{skip}>|
    {skip}>|
    /{skip}|[REV]
     
    Root и vipsite нравится это.
  19. vipsite

    vipsite Member Пользователи

    Регистрация:
    22 июл 2017
    Сообщения:
    55
    спасибо! помогло!)
     
    Root нравится это.
  20. strateg2010

    strateg2010 Active Member Пользователи

    Регистрация:
    12 фев 2018
    Сообщения:
    181
    Город:
    порт
    Дабы не создавать новую тему, пробую все что выше было описано, ничего не получается, что такое регулярки и куда их вставлять я так и не
    понял.
    Требуется как на 2 комента выше пропустить 2 ссылки.
    Сайт: Ссылки недоступны для гостей
    Не получается: в вывод этих самих хлебных крошек пишу:
    Код:
    [BREADCRUMBS(<span class="separator"></span>||[CSVCS])][REPLACE(<span / |/{break}<{skip}>|{break}{skip}>|)]<CD_GRAN_4!>[/REPLACE][/BREADCRUMBS]
    в итоге отображается все хлебные крошки, а на конце будет вот такое:
    [​IMG]
    Как такое победить?
    Без replace тоже самое. все гуд, но вот конец хлебных крошек ну не очень классный((
     

Поделиться этой страницей