Вопрос по парсингу категорий

Тема в разделе "Решение задач по парсингу", создана пользователем jeDauphin, 8 авг 2014.

  1. jeDauphin

    jeDauphin New Member Пользователи

    Регистрация:
    20 фев 2013
    Сообщения:
    74
    Подскажите, пожалуйста, как решить проблему:
    Интернет магазин, необходимо спарсить категории и подкатегории.

    Этот товар имеет структуру:
    Крепеж - Дюбельная техника - Дюбель универсальный

    PHP:
    <td class="text4" valign="bottom" style="padding-left: 5px;padding-bottom: 5px;">
    <
    font color="#ff9900">ТОВАРЫ РОЗНИЦА</font>
    /
    <
    class="link15" href="?i=rozn&cat=41&scat=41">Крепеж</a>
    /
    <
    class="link15" href="?i=rozn&cat=41&scat=55">Дюбельная техника</a>
    Дюбель универсальный
    </td>
    А это:
    Крпеж - Перфорированный крепеж

    PHP:
    <td class="text4" valign="bottom" style="padding-left: 5px;padding-bottom: 5px;">
    <
    font color="#ff9900">ТОВАРЫ РОЗНИЦА</font>
    /
    <
    class="link15" href="?i=rozn&cat=41&scat=41">Крепеж</a>
    Перфорированный крепеж
    </td>


    Как можно определить границы чтобы оба товаров парсились с правильной структурой категорий?
     
  2. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    6.504
    Адрес:
    sbfroot@gmail.com
    Здравствуйте.

    Задаем обычную границу парсинга (например, первую - <CD_GRAN_1!>) -> Ссылки недоступны для гостей, зарегистрируйтесь или авторизуйтесь на форуме! :
    начало - <font color="#ff9900">ТОВАРЫ РОЗНИЦА</font>
    конец - </td>

    И помещаем ее в макрос [BREADCRUMBS]:
    В итоге получим:
     
  3. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    2.473
    Пробуйте специальным макросом, BREADCRUMBS - подробнее описание и видео Ссылки недоступны для гостей, зарегистрируйтесь или авторизуйтесь на форуме!

    Цитата из справки
     
    Последнее редактирование: 8 авг 2014
  4. jeDauphin

    jeDauphin New Member Пользователи

    Регистрация:
    20 фев 2013
    Сообщения:
    74
    Спасибо огромное! Все получилось.
     
  5. jeDauphin

    jeDauphin New Member Пользователи

    Регистрация:
    20 фев 2013
    Сообщения:
    74
    Подскажите, пожалуйста, как поступить в следующем примере:

    Вот код отвечающий за категории товаров, где присутствуют несколько подкатегорий:
    HTML:
    <div class="bread-crumbs">
                        <p><a href="/">Интернет-магазин</a> / <a href="/catalog.php?catid=1848">Женщинам</a> / <a href="/catalog.php?catid=1925" class="bold">Женское нижнее бельё</a></p>
                        <p><a href="/">Интернет-магазин</a> / <a href="/catalog.php?catid=1848">Женщинам</a> / <a href="/catalog.php?catid=1925">Женское нижнее бельё</a> / <a href="/catalog.php?catid=1932">Комплекты белья</a> / <a href="/catalog.php?catid=1933" class="bold">Другое</a></p>
                        <p><a href="/">Интернет-магазин</a> / <a href="/catalog.php?catid=2673">РАСПРОДАЖА: скидки до 45%</a> / <a href="/catalog.php?catid=2194" class="bold">Скидка 45%</a></p>
                </div>
    Как можно из указанного примера спарсить второй ряд категорий:
    HTML:
    <p><a href="/">Интернет-магазин</a> / <a href="/catalog.php?catid=1848">Женщинам</a> / <a href="/catalog.php?catid=1925">Женское нижнее бельё</a> / <a href="/catalog.php?catid=1932">Комплекты белья</a> / <a href="/catalog.php?catid=1933" class="bold">Другое</a></p>
    если у донора присутствуют товары с 2 рядами категорий или с одним:
    HTML:
    <div class="bread-crumbs">
                        <p><a href="/">Интернет-магазин</a> / <a href="/catalog.php?catid=1848">Женщинам</a> / <a href="/catalog.php?catid=993" class="bold">Юбки</a></p>
                        <p><a href="/">Интернет-магазин</a> / <a href="/catalog.php?catid=1848">Женщинам</a> / <a href="/catalog.php?catid=113">Платья</a> / <a href="/catalog.php?catid=1840" class="bold">Платья баллон</a></p>
                </div>
    или
    HTML:
    <div class="bread-crumbs">
                        <p><a href="/">Интернет-магазин</a> / <a href="/catalog.php?catid=1848">Женщинам</a> / <a href="/catalog.php?catid=2668" class="bold">Толстовки &amp; Лонгсливы</a></p>
                </div>
     
  6. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    2.473
    С применением "повторяющиеся границы"
    1. Простой границей захватываете область кода где фигурируют категории это:
    2. Указываем эту простую границу для повторяющихся границ
    [​IMG]

    3. Повторяющиеся границы цепляем за теги p
    4. В шаблоне вывода остается вывести в таком виде как только вы знаете, если настроить как описал и ничего не трогая но удалив теги лишние получим результат построчно:
     
  7. jeDauphin

    jeDauphin New Member Пользователи

    Регистрация:
    20 фев 2013
    Сообщения:
    74
    Да, но проблема в том, что мне нужна только 1 категория, в данном примере это:
    Интернет-магазин / Женщинам / Женское нижнее бельё / Комплекты белья / Другое

    У меня не возникли бы вопросы, если во всех товарах было бы как и тут по 3 категории. Но проблема в том, что встречаются и по одной, и по две, и по три категорий. И не всегда нужная категория бывает второй в списке, она может быть первой, третьей.
     
  8. dmitryt

    dmitryt New Member Пользователи

    Регистрация:
    24 июн 2014
    Сообщения:
    110
    Есть идея. Я так понимаю вам нужна категория, в которой четыре подкатегории, а значит четыре "/"
    Сделать 3 границы для каждой строки breadcrumb, в настройках границ поставить "html to text". На этом этапе в каждой границе у нас будет текст такого вида:
    Далее делаем IF-условия, которые считают количество символов в этих границах. После исключения букв русского алфавита, тире, запятых, точек - останутся только слэши "/". Нам необходимо чтобы символов после исключения было больше трех >3
    Символы считать надо с помощью тега [CHARCOUNT], который включает в себя тег [EXCLUDE].
    Получится что-то типа
     
    Последнее редактирование: 18 авг 2014
  9. drvoodoo

    drvoodoo New Member Пользователи

    Регистрация:
    30 дек 2016
    Сообщения:
    10
    Подскажите пожалуйста каким образом можно выхватить последнюю категорию из breadcrumbs ?
    Теперь подробней:
    Есть сайт с произвольным количеством вложенных групп. Мне необходимо получить данные в какой конкретно группе лежит нужный мне товар. В моём случае это всегда последнее значение в breadcrumbs, как мне его можно получить?
     
  10. Mind

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

    Регистрация:
    8 ноя 2016
    Сообщения:
    25
    Здравствуйте, для того, чтобы Вам помочь, нужно хотя бы увидеть предмет вашего мытарства)
    Ссылку на товар напишите для начала)
     
    Root нравится это.
  11. drvoodoo

    drvoodoo New Member Пользователи

    Регистрация:
    30 дек 2016
    Сообщения:
    10
  12. Mind

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

    Регистрация:
    8 ноя 2016
    Сообщения:
    25
    А можно ещё ссылку на товар С другой вложенностью? Что-то не могу найти
     
  13. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    1.372
    Здравствуйте!
    Изучайте
    (Mind) ссылки с вложенностью вот тут (см. рис)
     

    Вложения:

    Root и drvoodoo нравится это.
  14. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    2.473
    Вдобавок ко всем советам перечисленными выше - рекомендую в таких случаях когда надо зацепить последнее значение из всех, использовать "инверсию" при указании границы это кнопка [.i.]
     
    Root, drvoodoo и Kreol нравится это.

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