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

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

  1. Leva

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

    Регистрация:
    22 мар 2019
    Сообщения:
    10
    Здравствуйте, помогите пожалуйста советом! Есть сайт ,где цена товара меняется в зависимости от выбора цвета и размера . Нужно чтобы каждая опция( ширина,высота, артикул, цена) выводилась с новой строки.
    Ссылка:
    Ссылки недоступны для гостей
     
  2. kadishev1997

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

    Регистрация:
    27 мар 2019
    Сообщения:
    310
    Доброго дня!

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

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

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

    Регистрация:
    22 мар 2019
    Сообщения:
    10
    Здравствуйте! В том-то и дело ,что данные материалы изучены. Там загвоздка в том,что размеров намного меньше ,чем допустим , артикулов и цветов товара и получаются пустые ячейки.Например:
    Дверь_1 другие границы размер артикул
    Дверь_1 другие границы размер артикул
    Дверь_1 другие границы артикул
    Дверь_1 другие границы артикул
    артикул
    Интересует можно ли как-то распарсить размеры если их по количеству меньше других опций
     
  4. aresa

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

    Регистрация:
    17 окт 2015
    Сообщения:
    180
    Здравствуйте! По моему Вы как-то неправильно написали вводные данные. Вы пишите размеров меньше, чем других опций. Ссылку, которую Вы предоставили, там как раз при выборе нового размера, меняется и артикул. Я код к сожалению не могу сейчас посмотреть, но на самом сайте количество размеров=количество артикулов.
    Проанализируйте ещё раз, ссылки на помощь Вам выше дали. Это решается через ПГ
     
    Leva нравится это.
  5. Leva

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

    Регистрация:
    22 мар 2019
    Сообщения:
    10
     
  6. Leva

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

    Регистрация:
    22 мар 2019
    Сообщения:
    10
    Здравствуйте, да на самой странице все как вы сказали. В коде размеров столько сколько на странице, а вот артикулов и цен содержится +по количеству цветов( на некоторых товарах Арт 678-1 -Арт 678-n). Интересует, как добиться, чтобы количество размеров соответствовало количеству данных соответствующих им других опций.Хоть небольшой , но ощутимый пинок в нужную сторону
     
  7. aresa

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

    Регистрация:
    17 окт 2015
    Сообщения:
    180
    Попробую как доберусь до CD глянуть, но обычно пляшут от артикулов. Например в товаре с одним артикулом может быть несколько размеров, соответсвенно для каждого размера своя цена (иногда она может совпадать). Если добавляется ещё одна опция, например цвет, тогда дополнительно надо использовать ПГ в ПГ
     
  8. aresa

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

    Регистрация:
    17 окт 2015
    Сообщения:
    180
    в коде есть повторяющийся блок в связке цвет+размер, которым соответствует цена и артикул. Это одна повторяющаяся граница:
    <div itemprop="offers" itemscope itemtype="Ссылки недоступны для гостей">
    <meta itemprop="price" content="9200">
    <meta itemprop="sku" content="3289_1">
    <meta itemprop="url" content="Ссылки недоступны для гостейcolor=36&amp;size=1">
    <meta itemprop="priceValidUntil" content="04-15-2020 20:04:25">
    <link itemprop="availability" href="Ссылки недоступны для гостей" />
    </div>
    также есть код JSON код с цветом и размером
    data-colors="::[{&quot;ColorId&quot;:36,&quot;ColorName&quot;:&quot;Жемчужный ясень&quot;,&quot;ColorCode&quot;:&quot;#f3f3f3&quot;,&quot;PhotoName&quot;:&quot;&quot;},{&quot;ColorId&quot;:37,&quot;ColorName&quot;:&quot;Орех тон 2&quot;,&quot;ColorCode&quot;:&quot;#331a00&quot;,&quot;PhotoName&quot;:&quot;&quot;}]"


    data-sizes="[{&quot;SizeId&quot;:1,&quot;SizeName&quot;:&quot;600&#215;2000&quot;},{&quot;SizeId&quot;:2,&quot;SizeName&quot;:&quot;700&#215;2000&quot;},{&quot;SizeId&quot;:3,&quot;SizeName&quot;:&quot;800&#215;2000&quot;},{&quot;SizeId&quot;:4,&quot;SizeName&quot;:&quot;900&#215;2000&quot;},{&quot;SizeId&quot;:11,&quot;SizeName&quot;:&quot;600&#215;1900&quot;}]"
    data-size-selected="product.sizeSelected"
    data-init-sizes="product.initSizes(sizesViewer)"
    data-change-size="product.changeSize(size)">

    Далее по очереди подстегиваете еще опции. Коробка (компл.) Это вторая повторяющаяся граница. Т.е. надо будет использовать повтор в повторе. и к основной цене из первой повторяющейся границе прибавлять цену второй повторяющейся границы. И т.д. Повторяющихся границ должно хватить.
     
  9. Leva

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

    Регистрация:
    22 мар 2019
    Сообщения:
    10
     
  10. Leva

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

    Регистрация:
    22 мар 2019
    Сообщения:
    10
    Подскажите пожалуйста, а как сделать, что бы количество строк с размерами =артикул=цена. По примеру вот у меня в чем загвоздка
     
  11. aresa

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

    Регистрация:
    17 окт 2015
    Сообщения:
    180
    Нужно задать обычные границы парсинга внутри повторяющихся
    Ссылки недоступны для гостей
    разделитель циклов [CSVLB]
     
    Root нравится это.
  12. Leva

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

    Регистрация:
    22 мар 2019
    Сообщения:
    10
    Спасибо за помощь!
     
    Root нравится это.

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