Как извлечь данные истории цены любого товара с Wildberries? Видео инструкция
Не так давно на Wildberries.ru на странице каждого товара появился виджет с историей цены. Я задался вопросом как получить эти данные и вот мое решение.
Тема парсинга маркетплейсов довольно актуальна, и данные о ценах наверное самые важные, на равне с отзывами о товарах. Сегодня об истории цены.
1. Заходим на страницу товара и открываем в браузере панель DevTools (Инструменты разработчика, клавиша F12) и при активированной вкладки Инспектор выбираем блок История цены. В результате мы видим название класса price-history к которому относится данный блок:
2. Далее переходим во вкладку Network (Сеть) и фильтруем запросы по price-history (если ничего не появилось - обновляем страницу).
Нам повезло, найден один GET запрос, который возвращает от сервера текст в формате *.json.
?local=ru можно обрезать, это не обязательный параметр. Теперь мы имеем прямую ссылку на необходимые данные. С самой первой страницей (страницей товара) нас объединяет артикул товара, в нашем случае 42782921.
Здесь данные о цене:
Основная ссылка на товар:
Зная артикул товара, мы сможем получить историю его цены.
3. Смотрим json, можно прямо в браузере, можно в этом сервисе.
Он представляет собой список словарей (в питоновской терминологии):
- ключу "dt" соответствует дата в формате Unix (вот как перевести в понятную дату вручную, а вот с помощью Excel)
- а ключу "price" - цена в копейках (кстати, на сайте копейки округлены до рублей, и у нас цены точнее, чем у обычных пользователей).
Теперь вытащить эти данные и обработать их уже дело техники. При небольшом количестве - хоть в ручную. Я использую Python.
Traceback (most recent call last):
File "C:\Users\madbu\OneDrive\������� ����\WB\WB", line 50, in
title, current_price = get_title_and_current_price(url)
File "C:\Users\madbu\OneDrive\������� ����\WB\WB", line 19, in get_title_and_current_price
title = soup.title.text
AttributeError: 'NoneType' object has no attribute 'text'
Только вот эта история цен очень странная и не отображает все изменения. Часто наблюдаю собственными глазами колебания цен, которые в график не попадают.
Traceback (most recent call last):
File "C:\Users\madbu\OneDrive\������� ����\WB\WB", line 50, in
title, current_price = get_title_and_current_price(url)
File "C:\Users\madbu\OneDrive\������� ����\WB\WB", line 19, in get_title_and_current_price
title = soup.title.text
AttributeError: 'NoneType' object has no attribute 'text'
@Wildberries_seller_bot
Спасибо за статью!
Только вот эта история цен очень странная и не отображает все изменения. Часто наблюдаю собственными глазами колебания цен, которые в график не попадают.