Парсинг остатков товара на Wildberries

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

  1. kofe

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

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

    Требуется спарсить остаток товара на wildberies. В ручном режиме остаток определяется после нажатия "добавить в корзину" и последующего перехода в корзину, далее вставки большого значения в поле количество. Например вставляя 99 и нажатия кнопки "+" в окне количества появляется реальный остаток (в нашем случае на момент создания задания было 55).

    Я думал реализовать двойным GETMORECONTENT (POST запросом "добавить в корзину" и так же "перейти в корзину") с последующим парсингом ответа, но уже на первом шаге застрял. Возможно это тупиковый путь, и нужно как-то иначе решать.

    Пробовал сделать через webapp, но потом подумал что в один поток будет очень медленно (возможно я ошибаюсь) и пока приостановил разработку в этом направлении. Файл проекта прилагаю.

    Пересмотрел много видео, а так же информации на форуме и мануале, не могу справиться. Разместил задачу в менеджере заказов, но никто не взялся пока...

    Прошу подсказать по какому пути мне продвигаться. Буду благодарен за любую подсказку.
     

    Вложения:

    Последнее редактирование: 17 дек 2020
  2. Root

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

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

    Проще всего через WBAppCEF.

    Проект приложил.

    Если устроит и будет желание, 500 рублей закините (ссылка на донат в подписи).

    Спасибо!
     

    Вложения:

  3. inotoxic

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

    Регистрация:
    13 сен 2015
    Сообщения:
    874
    При больших объемах - не вариант
     
  4. kofe

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

    Регистрация:
    22 май 2019
    Сообщения:
    64
    Конечно! Честно, за такое поляну хочется даже накрыть...

    Интегрировал в свой проект и это работает!

    Не удобно настолько вас вовлекать, но все же осмелюсь просить еще немного проконсультировать (если можете).

    1. В моем проекте присутствует проверка города, в "DOITATFIRSTDOC" (по умолчанию Питер определяет, а нужно Москва) и в моем случае willberries_moscow.wbapp город меняет, но далее WBAppCEF все же для Питера парсит. Я правильно думаю, что в моем случае нужно исключить "DOITATFIRSTDOC" и willberries_moscow.wbapp интергировать в wildberries_ru.wbapp с условием "IF не Москва" (надеюсь найду где почитать), я в правильном направлении?

    2. Иногда данные вливаются дважды. Я подумал может из-за того, что у меня два потока стояло, но заметил, что и при одном потоке, тоже такое происходит. Потом подумал, что от количества потоков это не должно как бы зависеть, не так ли? Если так, то willberries_moscow.wbapp мне нужно подправить? Или в моем случае нужно дополнительную проверку перед экспортом в базу организовывать, что-то вроде: Ссылки недоступны для гостей

    3. Иногда некоторые товары пропускает, но я подумал, что в цикле (файла wildberries_ru.wbapp) можно добавить чуть времени ожидания. Верно?

    4. Бывают ссылки когда товара нет в наличии. Какое решение лучше, либо их пропускать по какому то параметру в файле wildberries_ru.wbapp (тоже IF...) или лучше не давать таких ссылок для парсинга остатков (фильтровать их на входе)?

    Слишком много вопросов, я извиняюсь...
     

    Вложения:

    Последнее редактирование: 18 дек 2020
  5. Root

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

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

     

    Вложения:

  6. Root

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

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

    2) Не понял, что имеется ввиду под выражением "данные вливаются дважды"

    3) Не должно пропускать. Попробуйте настроить WAITFORRESPONSE, как в видео выше. На крайний случай рассмотрите такую опцию

    2020-12-18_05-47-16.png

    4) Приведите пример такой ссылки.
     

    Вложения:

  7. kofe

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

    Регистрация:
    22 май 2019
    Сообщения:
    64
    Границу парсинга "maxQuantity" больше не находит CD. В ответе (Firefox -> "Копировать ответ") после изменения количества товара в корзине есть maxQuantity, а в коде уже нет, возможно они что-то изменили... Если подскажете можно ли и как спарсить maxQuantity из ответа, я буду рад.

    В любом случае многое прояснилось, с оставшимися мелочами надеюсь сам смогу разобраться.

    Огромное вам спасибо!
     
    Последнее редактирование: 19 дек 2020
  8. Root

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

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

    Действительно, "повезло". Поменяли верстку.

    Только вот так получилось. Теперь только в 1 поток, так как используются куки для выбора города, а корзина при использовании куков для разных товаров общая. Если без кук, только через VPN (с нужным городом), тогда, думаю, можно и больше потоков ставить.

    Обидно.

    Проект приложил.
     

    Вложения:

    Achronis нравится это.

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