Можно ли получить несколько блоков данных с одной страницы

Тема в разделе "Обработка данных при парсинге во вкладке "Контент"", создана пользователем drvoodoo, 18 апр 2017.

  1. drvoodoo

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

    Регистрация:
    30 дек 2016
    Сообщения:
    69
    Задача: Необходимо собрать несколько блоков (описание и характеристики) с карточки товара.
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    Я вижу решения задачи, созданием условия пропускать всё кроме двух блоков:
    <div itemprop="description" data-qaid="product_description">
    <table class="b-product-info">

    Возможно ли такое реализовать существующим функционалом? Может есть альтернативное решение...


    Собирать данные в разные столбцы а потом объединить в excel, не подходит.
     
    Последнее редактирование модератором: 18 апр 2017
  2. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Здравствуйте
    Нарисуйте картинку и финальный файл, как это должно выглядеть на примере вашей ссылки.
    Посмотрим, что можно сделать.
     
  3. drvoodoo

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

    Регистрация:
    30 дек 2016
    Сообщения:
    69
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    По сути, нужны данные в одной ячейке из дива <div itemprop="description" data-qaid="product_description">
    и таблицы <table class="b-product-info">
     
  4. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Из дива это проблематично.
    Нужно сначала спасить все товары, потом посмотреть какие там бывают характеристики, и разбить глазами это все. Потом создать кучу поиск/замен для всех вариаций данных хараектеристик.
    В общем, лучше этого не делать, так как все равно будет куча глюков, которые нужно будет проверять
    Например, создаем правило для такой конструкции Размеры:36,37,38,39,40.
    re:(Размер(.*?)\.) |<aaa>Размер$1<bbb> то в итоге мы получим <aaa>Размеры:36,37,38,39,40.<bbb>
    в данном случае оно будет работать, а если вдруг кто-то напишет вот так Размеры:36,37.38,39,40.
    то мы получим вот так
    <aaa>Размеры:36,37.<bbb>
    А зная эту сферу, туда еще и могут 10-к разных размеров написать.
    Например будет написано:
    с рукавом размеры:1,2,3
    без рукава размеры:4,5,6
    в итоге вы получите кашу так как таких вариаций обычно очень и очень много.
    Так что лучше оставьте этот участок как описание и будет вам счастье.
     
  5. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    И кстати
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    вас будет банить не кисло так)
     
  6. drvoodoo

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

    Регистрация:
    30 дек 2016
    Сообщения:
    69
    Возможно вы не так меня поняли. Непринципиально какой материал будет в том или ином блоке (характеристики или произвольный текс), не важно. Суть проблемы собрать в одну ячейку несколько блоков, игнорируя всё ненужное.

    Это нестрашно, у меня уже большой опыт работы именно с этим сервисом, по 1000 товаров за 30 минут собираю.


    <div class="b-layout__content"> (общий блок в котором содержится вся необходимая и лишняя информация)
    <div class="b-content b-content__body qa-main-info-product">
    <div class="b-product" itemscope="itemscope" itemtype="Ссылки недоступны для гостей">
    <div class="b-online-edit h-mt-40">
    <div class="b-user-content" itemscope="itemscope" itemtype="Ссылки недоступны для гостей">
    <div itemprop="description" data-qaid="product_description"> (конкретный блок который нужно собрать)
    </div>
    </div>
    </div>
    <div class="b-content qa-product-attributes">
    <span class="b-title">Характеристики</span>
    <div class="b-content__body">
    <div class="b-online-edit">
    <table class="b-product-info"> (конкретный блок который нужно собрать)
    </div>
    </div>
    - итд -
    </div>
     
    Последнее редактирование: 18 апр 2017
  7. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Тогда непонятно, в чем проблема
    1 границей возьмите описание, 2 границей - характеристики
    Лишнее чистите поиск/заменой
    в шаблоне написать например:<CD_GRAN_1!>{br}<CD_GRAN_2!>
     
    Root и drvoodoo нравится это.
  8. drvoodoo

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

    Регистрация:
    30 дек 2016
    Сообщения:
    69
    Затупил.
    Всё вы верно написали, спасибо за подсказку. Вроде решение было на поверхности, а вот сам не допёр :)
    Ещё раз спасибо.
     
    Последнее редактирование: 18 апр 2017
    Root нравится это.

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