Граница парсинга, последний найденный класс, динамический id.

Тема в разделе "Границы парсинга", создана пользователем vladimir4000, 25 авг 2017.

  1. vladimir4000

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

    Регистрация:
    25 авг 2017
    Сообщения:
    119
    Доброго дня, подскажите пожалуйста новичку, где можно посмотреть подробнее как выбрать границу парсинга. Нужно выбрать Каталки для детей в <span class="Caption"><a href="Ссылки недоступны для гостей">Каталки для детей</a></span>, но количество классов Caption
    может быть разное, так что нужно выбрать всегда только последний, да и к тому же в <a href="Ссылки недоступны для гостей"> id всегда разный. Подскажите пожалуйста как быть?
    <div class="Way">
    <a href="Ссылки недоступны для гостей">Главная</a> &gt;&gt;
    <span id="ContentPlaceHolder1_PathProd1_ListPath"><span class="Caption">
    <a href="Ссылки недоступны для гостей">Игрушки</a>
    </span><span>
    &gt;&gt;
    </span><span class="Caption">
    <a href="Ссылки недоступны для гостей">Полесье</a>
    </span><span>
    &gt;&gt;
    </span><span class="Caption">
    <a href="Ссылки недоступны для гостей">Цена поставщика</a>
    </span><span>
    &gt;&gt;
    </span><span class="Caption">
    <a href="Ссылки недоступны для гостей">Каталки для детей</a>
    </span></span></div>
     
  2. Mind

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

    Регистрация:
    8 ноя 2016
    Сообщения:
    190
    В поиск-замене границы вставьте
    &nbsp;|
    re:[\s\t]+|
    > |>
    <|<
    >|>
    </a></span>|
    &gt;&gt;|^^^^
    <{skip}>|
    ^^^^{skip}|
    {skip}|{prevskip}
     
    socstat, vladimir4000 и Root нравится это.
  3. vladimir4000

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

    Регистрация:
    25 авг 2017
    Сообщения:
    119
    Огромное спасибо, все работает как нужно. Только вот совсем не разбираюсь в регулярных выражениях. Подскажите пожалуйста, а как в этом примере выбрать не последний , а предпоследний элемент в классе Caption? Спасибо.
     
  4. Mind

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

    Регистрация:
    8 ноя 2016
    Сообщения:
    190
    Добавьте предпоследней еще строчку
    ^^^^{skip}|
     
    socstat, vladimir4000 и Root нравится это.
  5. vladimir4000

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

    Регистрация:
    25 авг 2017
    Сообщения:
    119
    Доброго дня, хотелось бы попросить еще немного помощи. К сожалению, парсинг по названию категорий мне не подходит, т.к. повторяются названия. Хотелось бы попросить, как можно с помощью регулярного выражения получать не название последнего каталога в классе Caption, а номер последнего id, к примеру Ссылки недоступны для гостей из последнего <a href="Ссылки недоступны для гостей">Каталки для детей</a>. Спасибо.
     
  6. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Код:
    <a href="Prod.aspx?id={skip}"|
    {get}|{prevskip}
    2017-09-15_16-37-13.png
     
    makskyr, socstat, kagorec и ещё 1-му нравится это.
  7. vladimir4000

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

    Регистрация:
    25 авг 2017
    Сообщения:
    119
    Все оказалось проще, чем я думал, спасибо.
     
    Root нравится это.
  8. vladimir4000

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

    Регистрация:
    25 авг 2017
    Сообщения:
    119
    Доброго времени суток. Опять столкнулся с похожей задачей, но самостоятельно не смог ее решить. Подскажите пожалуйста. Есть хлебные крошки

    <a href="Ссылки недоступны для гостей">Главная</a>
    &raquo; <a href="Ссылки недоступны для гостей">Халаты, туники, сарафаны женские</a>
    &raquo; <a href="Ссылки недоступны для гостей">Женский комплект арт. 898-3, бело-сиреневый</a>

    Повторяющиеся границы парсинга получают "Главная,Халаты, туники, сарафаны женские,Женский комплект арт. 898-3, бело-сиреневый" нужно получить предпоследнее значение "Халаты, туники, сарафаны женские". Если я правильно понял, то в настройках повторяющихся границ парсинга в "что заменить|на что заменить" нужно написать регулярное выражение, но что бы я не пробовал, получаю пустой результат. Подскажите пожалуйста правильное регулярное выражение. Спасибо.
     
  9. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Если нужно получить одну предпоследнюю рубрику, задаете ОБЫЧНУЮ границу парсинга для взятия блока кода рубрик и применяете к ней поиск-замену:
    Код:
    &raquo;{skip}|
    &raquo;{get}|{get}
    <{skip}>|
     
    kagorec нравится это.
  10. vladimir4000

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

    Регистрация:
    25 авг 2017
    Сообщения:
    119
    Уточню, я пытаюсь получить текст во второй ссылке, например "Халаты, туники, сарафаны женские".

    К сожалению обычную границу тут не задашь. Потому, что в данном повторяющемся блок кода, ссылки будут всегда разные.

    <div class="breadcrumb-pp">
    <a href="Ссылки недоступны для гостей">Главная</a>
    » <a href="Ссылки недоступны для гостей">Платья, джемпера, туники женские</a>
    » <a href="Ссылки недоступны для гостей">Блуза арт. 646-1, голубая</a>
    </div>

    Поэтому Начало парсинга можно задать так "> , а Конец парсинга </a> поэтому пришлось задать повторяющиеся границы, иначе будет слишком много результатов выдачи. Может я чего то не до конца понял))
     
    Последнее редактирование: 15 май 2019
  11. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Граница парсинга в вашем случае задается элементарно.

    Ссылки недоступны для гостей
     
  12. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Начало:
    <div class="breadcrumb-pp">
    Конец:
    </div>

    Поиск-замены я расписал выше.
     
  13. vladimir4000

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

    Регистрация:
    25 авг 2017
    Сообщения:
    119
    Не совсем понятно, до этого я нормально спарсил несколько сайтов. Проблем с обозначением границ парсига вроде особо не было. Может быть я что то упускаю из виду? Как примеру тут обозначить границы парсинга, что бы получить значения ссылок "Главная\Платья, джемпера, туники женские\Блуза арт. 646-1, голубая" без использования повторяющихся границ?
    <div class="breadcrumb-pp">
    <a href="Ссылки недоступны для гостей">Главная</a>
    <a href="Ссылки недоступны для гостей">Платья, джемпера, туники женские</a>
    <a href="Ссылки недоступны для гостей">Блуза арт. 646-1, голубая</a>
    </div>
    или
    <div class="breadcrumb-pp">
    <a href="Ссылки недоступны для гостей">Главная</a>
    <a href="Ссылки недоступны для гостей">Платья, джемпера, туники женские</a>
    <a href="Ссылки недоступны для гостей">Блуза арт. 740-11, индиго</a>
    </div>
     
  14. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Ответил выше. Смотрите внимательнее.
     
  15. vladimir4000

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

    Регистрация:
    25 авг 2017
    Сообщения:
    119
    Понял, спасибо.
     
    Root нравится это.
  16. vladimir4000

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

    Регистрация:
    25 авг 2017
    Сообщения:
    119
    Отлично, все работает. Огромное спасибо.
     
  17. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Пожалуйста...
     

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