Ozon + WBAppCEF (Парсинг кол-ва товаров)

Тема в разделе "Решения по парсингу популярных сайтов", создана пользователем kadishev1997, 13 янв 2020.

Метки:
  1. kadishev1997

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

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

    Стоит задача - собрать кол-во остатков товаров с OZON.
    Нашел обработку данных через WBAppCEF 2 способами:
    1й - Задать цикличность кликов по товару, пока не будет значения "В наличии больше нет" и закончить обработку одной страницы.

    upload_2020-1-13_11-31-42.png

    2й - через корзину, прописывать максимальное кол-во товаров (у Ozon это 999) и получать максимальное наличие товара (например прописал 999, а обработалось и осталось 248)

    upload_2020-1-13_11-36-12.png

    По первому пункту в целом понятно: поставил цикличность, и обрабатываются в WBAppCEF пока ссылки не закончатся. Но тут и есть главное "НО": ссылок на товаров более 10000, и на обработку уходит слишком продолжительное время.

    По пункту №2 - проще и быстрее по факту, но почему-то на этой странице не работают ни JS Скрипты (из видимых скриптов JS сработал только "DOMNODE.focus();" ) , ни макросы формата [KEYPRESS] и [LEFTCLICK].
    Скорее всего пункт №2 относится к доработке WBAppCEF, но написал на всякий случай как отдельную тему.

    Помогите разобраться с пунктом №2: Это необходимость доработки программы или руки "Из одного места"?
     
  2. Root

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

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

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

    Код:
    <GETMORECONTENT><URL="https://www.ozon.ru/api/composer-api.bx/page/json/v1?url=%2Fcart%3Fitem%3D154275929%26tab%3D0%26qty%3D100"><START="{"}maxQuantity{"}:"><STARTCOUNT="0"><END=","><ENDCOUNT="0"><PARAMS=""></GETMORECONTENT>
    Получаем 248 одним запросом.
     
    kofe, pomansur и kadishev1997 нравится это.
  3. kadishev1997

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

    Регистрация:
    27 мар 2019
    Сообщения:
    310
    Спасибо за помощь! Еще момент: после добавления товаров в корзину, их пытаюсь прописать для каждого товара. Использую GETMORECYCLECONTENT для этих целей. Вот код:
    Код:
    [GETMORECYCLECONTENT][SOURCE]https://www.ozon.ru/api/composer-api.bx/page/json/v1?[POST]url=%2Fcart%3Fitem%3D<FILE=C:\Users\1\Desktop\Ozon text.txt>%26tab%3D0%26qty%3D999[/SOURCE][START]{"}maxQuantity{"}:[/START][END]","[/END][TOSTART][/TOSTART][TOEND][/TOEND][PARAMS][/PARAMS][SEP]{br}[/SEP][/GETMORECYCLECONTENT]
    Где <FILE... .txt> - строки с артикулом товара, которые должны обработаться.
    Товары в корзине собраны, но не все
    Немного не понимаю, правильно ли реализован код?

    ____
    UP: Вроде как нашел корявое, но решение:
    1. Добавляем все необходимые товары в корзину через WBAppCef (С сохранением авторизации, ибо работать не будет)
    2. Переходим по адресу, указанному в коде URL
    Код:
    https://www.ozon.ru/api/composer-api.bx/page/json/v1?url=%2Fcart%3Fitem%3D154275929%26tab%3D0%26qty%3D100 (154275929 - артикул товара)
    (Данные в нем в JSON формате)
    3. В нем уже берем все необходимые значения
     
    Последнее редактирование: 13 янв 2020
  4. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Приветствую. Озон парсил 3 месяца назад, там все сложно. То что вы хотите относится к платной настройке, Конкретно вашу ситуацию нужно разбирать именно под ваши нужды
     
    kagorec и Root нравится это.
  5. kadishev1997

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

    Регистрация:
    27 мар 2019
    Сообщения:
    310
    Стояло 2 задачи: взять около 50к товаров с Озона и после узнать их кол-во раз в 24 часа на протяжении 3 дней (какая у них идёт динамика)
    С первым разобрался быстро, хватило опыта, а вот со вторым пару дней поломал голову, но спасибо Root за подсказку с Getmorecontent, она помогла реализовать задачу. Ещё пару дней допилки и он был готов, сейчас в работе)
    Да и, озон оказался не так сложен, как например Е-каталог (от части), ну или, Яндекс.Маркет.
    Хотя и они, при грамотной настройке, нужным лимитам и пару сотен прокси тоже поддаются обработке :)
     
    Root нравится это.
  6. kofe

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

    Регистрация:
    22 май 2019
    Сообщения:
    64
    Если парсить поисковую выдачу категорий (не карточку товара), то остатки можно через границу парсинга забирать - "maxItems".
     
    Последнее редактирование: 17 дек 2020
    kadishev1997 нравится это.
  7. KVB

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

    Регистрация:
    29 ноя 2018
    Сообщения:
    4
    Город:
    Ковров
    а где можно почитать про синтаксис ozon.ru/api/composer-api.bx/page/json/v1 ? Требуется получить список всех товаров по категории
     
    dimochkaorg нравится это.
  8. dimochkaorg

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

    Регистрация:
    25 мар 2017
    Сообщения:
    181
    Нужно тоже самое. Именно информация о продуктах в категории. У вас получилось? Вебом парсить не хочется - долго. А по API все быстро откатает.
     

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