Как спарсить опции

Тема в разделе "Решение различных задач по парсингу", создана пользователем dabustard, 14 мар 2018.

  1. dabustard

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

    Регистрация:
    18 май 2017
    Сообщения:
    17
    Помогите пожалуйста с такой задачей: есть страница товара, у которого у каждой характеристики не одно значение, а несколько (при чем у каждой их количество разное). Структура такая:

    <h1>Название товара 1</h1>
    <div><p>Характеристика 1</p><ul><li>Опция 1</li><li>Опция 2</li><li>Опция 3</li></ul></div>
    <div><p>Характеристика 2</p><ul><li>Опция 4</li><li>Опция 5</li></ul></div>
    <div><p>Характеристика 3</p><ul><li>Опция 6</li><li>Опция 7</li><li>Опция 8</li><li>Опция 9</li></ul></div>

    Надо получить такую таблицу:

    Название товара 1 | Характеристика 1 | Опция 1
    Название товара 1 | Характеристика 1 | Опция 2
    Название товара 1 | Характеристика 1 | Опция 3
    Название товара 1 | Характеристика 2 | Опция 4
    Название товара 1 | Характеристика 2 | Опция 5
    Название товара 1 | Характеристика 3 | Опция 6
    Название товара 1 | Характеристика 3 | Опция 7
    Название товара 1 | Характеристика 3 | Опция 8
    Название товара 1 | Характеристика 3 | Опция 9

    Границы задал:

    <h1>Название товара 1</h1> - <CD_GRAN_1!>
    <div><p>...</ul></div> - <CD_CYCLE_GRAN_1!>

    А дальше застопорился, мне же получается надо задать повторяющиеся границы внутри повторящихся? В помощи нашел только Ссылки недоступны для гостей с заданием обычных границ внутри повторяющихся. А как быть в моем случае?
     
  2. Root

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

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

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

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

    Регистрация:
    18 май 2017
    Сообщения:
    17
    Спасибо, Root, сделал все по вашей инструкции. Но дочерний цикл (крайняя правая колонка в примере) в предпросмотре почему то выводит все элементы кроме первого (в каждом подцикле). То есть таблица получается такой:

    Название товара 1 | Характеристика 1 | Опция 2
    Название товара 1 | Характеристика 1 | Опция 3
    Название товара 1 | Характеристика 2 | Опция 5
    Название товара 1 | Характеристика 3 | Опция 7
    Название товара 1 | Характеристика 3 | Опция 8
    Название товара 1 | Характеристика 3 | Опция 9

    При этом, когда определял границы дочернего цикла - там все элементы отображались. Из-за чего может быть такое?

    И еще вопрос по WBApp. В моем примере характеристики разбиты на несколько групп и выводятся через Ссылки недоступны для гостей
    Ссылки недоступны для гостей
    При этом контент внутри вкладок подтягивается по клику на ней через JS, а содержимое предыдущей УДАЛЯЕТСЯ из кода.
    WBApp я активировал, создал такой список событий:

    [CLICK][id][N]0[/N][FULL]:tab_step_1
    /*открываю нужный таб*/
    [WAIT]:2000
    [GETHTML] /*сохраняем в память первый аккордеон*/
    [CLICK][classname][N]1[/N][FULL]:b-accordion__header qa_characteristic_title /*открываем 2й аккордеон*/
    [WAIT]:2000
    [GETHTML] /*сохраняем 2й аккордеон*/
    [CLICK][classname][N]2[/N][FULL]:b-accordion__header qa_characteristic_title /*открываем 3й аккордеон*/
    [WAIT]:2000
    [GETHTML] /*сохраняем 3йаккордеон*/
    [CLICK][classname][N]3[/N][FULL]:b-accordion__header qa_characteristic_title /*открываем 4й аккордеон*/
    [WAIT]:2000
    [GETHTML] /*сохраняем 4й аккордеон*/


    Правильно ли это, [GETHTML] в частности? При проверке каждого события все работает как надо, открывается в нужном порядке. Но вот в итоге парсится только последняя вкладка...
     
  4. Root

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

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

    Пожалуйста.

    Не знаю, нужно смотреть настройки. Если хотите, можете приложить проект, я посмотрю.

    [GETHTML] берет код при каждом его вызове и суммирует с общим. С виду у вас правильный список событий, только нужно добавить еще один [GETHTML] в самом начале списка событий WBApp.

    Проверьте, какой код получает Content Downloader от WBapp в логе окна предпросмотра результатов парсинга контента.
     
  5. dabustard

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

    Регистрация:
    18 май 2017
    Сообщения:
    17
    Спасибо, получилось. Проблема была не недостающем [GETHTML], а в границах (изменялись динамически при открытии закрытии аккордеона).

    Но отсутствие первого элемента дочернего цикла не решил, если Вас не затруднит посмотрите пожалуйста.
     

    Вложения:

  6. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    2018-03-15_17-07-57.png
     
    dabustard нравится это.
  7. dabustard

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

    Регистрация:
    18 май 2017
    Сообщения:
    17
    Супер, огромное Вам спасибо!
     
    Root нравится это.

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