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

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

  1. dabustard

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

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

    <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
    Сообщения:
    9.641
    Город:
    Сочи
  3. dabustard

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

    Регистрация:
    18 май 2017
    Сообщения:
    7
    Спасибо, 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
    Сообщения:
    9.641
    Город:
    Сочи
    Здравствуйте.

    Пожалуйста.

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

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

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

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

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

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

    Вложения:

  6. Root

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

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

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

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

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