Перейти к содержимому
PD
Парсинг данных

Парсинг товаров с сайта: цены, остатки, карточки

Как собирать карточки товаров, почему цена - самое ненадёжное поле, как сопоставлять товары между источниками и что проверять в собранных данных.

Все статьи гида Парсинг данных · 11

Карточка товара - самый частый объект сбора, и у него есть особенности, из-за которых собранные данные регулярно оказываются неверными при формально работающем парсере.

Что входит в карточку

Идентификаторы. Артикул, штрихкод, идентификатор из адреса страницы. Самое важное поле: без него собранное невозможно ни сопоставить, ни обновить.

Название и бренд. Для человека, не для сопоставления.

Цена. Самое востребованное и самое ненадёжное поле - см. ниже.

Наличие. Часто важнее цены.

Характеристики. Обычно в виде набора пар, и структура у разных источников разная.

Изображения и описание. Осторожно: это объекты авторского права, и собирать их для использования у себя - другая история, чем собирать цифры для анализа.

Почему цена ненадёжна

Пять причин, каждая из которых встречается регулярно:

Зависит от региона. Один товар, разные города, разные цены. Собирать надо с адресом нужного региона и помечать результат - см. гид по прокси.

Зависит от авторизации. Оптовая цена видна только вошедшим.

Зависит от количества. Цена за штуку отличается от цены за упаковку, и на странице может быть указана любая из них.

Акции с ограничениями. «По карте», «при заказе от», «до конца недели» - на странице это несколько чисел, и парсер обязан понимать, какое из них берёт.

Персональные предложения. Часть площадок показывает разные цены разным посетителям.

Практический вывод: храните цену вместе с условиями сбора - регион, авторизация, дата, тип цены. Без этого расхождение с реальностью невозможно объяснить, а объяснять придётся.

Сопоставление между источниками

Главная сложность при сборе с нескольких сайтов.

Надёжно: штрихкод, артикул производителя, точное совпадение бренда и модели.

Ненадёжно: название. «Смартфон X 128 ГБ чёрный» на двух сайтах может быть разной комплектацией, разного года и с разной гарантией.

Что делать:

  • Собирать все доступные идентификаторы, а не только один.
  • Сопоставлять по устойчивому, а к названию обращаться в последнюю очередь.
  • Помечать уверенность сопоставления: точное, вероятное, ручное.
  • Проверять выборочно руками. Двадцать позиций раз в неделю показывают качество сопоставления лучше любых внутренних метрик.

Наличие и изменения

Наличие на разных площадках выражается по-разному: точное число, «мало», «в наличии», «под заказ», срок поставки. Приводите к своей шкале сразу при сборе, а не при анализе.

Исчезнувшие товары не удаляйте - помечайте отсутствующими. Товар может пропасть на неделю, а история появления и исчезновения позиций часто ценнее текущего среза.

История цен ценнее текущей цены: динамика показывает стратегию конкурента, а срез - только момент.

Что проверять в собранных данных

Автоматические проверки, ловящие большинство проблем:

  • Цена в разумном диапазоне. Ноль, отрицательное или в сто раз больше вчерашнего - признак сломанного разбора.
  • Обязательные поля заполнены. Пустое название - сбой, а не товар без названия.
  • Число собранных позиций сопоставимо с прошлым разом. Резкое падение означает поломку, а не исчезновение каталога.
  • Нет дубликатов по ключу - см. дедупликацию.
  • Типы верны. Цена как строка с пробелами и валютой требует приведения, и делать это надо при сборе.

Общее правило: парсер должен сообщать о подозрительном, а не молча писать в базу. Тысяча позиций по нулевой цене - это авария, и узнать о ней надо сразу, а не от коллеги через неделю.

Как это устроено технически - парсинг на Python. Особенности маркетплейсов - отдельная статья. Обзор - гид по парсингу.

Вопросы и ответы

Почему собранная цена не совпадает с той, что видит покупатель?

Потому что цена часто зависит от условий: региона, авторизации, количества, действующих акций и персональных предложений. Собранное значение верно для тех условий, в которых оно собрано, и хранить его надо вместе с ними.

Как сопоставить товары с разных сайтов?

По устойчивому идентификатору: штрихкоду или артикулу производителя. Сопоставление по названию неизбежно даёт ошибки - разная комплектация, разный объём, разный год выпуска выглядят как один и тот же товар. Любое автоматическое сопоставление требует выборочной проверки руками.

Что делать с товарами, которые пропали из каталога?

Не удалять, а помечать как отсутствующие. Товар может пропасть временно, а история появления и исчезновения позиций часто ценнее текущего среза: по ней видно, что уходит из ассортимента и что появляется.

Ещё по теме

Сделаю под ключ

Соберу парсер под ваш источник

С обходом защиты, прокси и выгрузкой в таблицу, базу или Telegram. Работает по расписанию без вас.

от 300 $ · 3-7 дней

Похожий кейсEtsy Keyword FinderПриложение для аудита ключевых слов Etsy на очереди задач: отправляете ID листинга и до 20 ключей, а фоновые воркеры проходят реальную выдачу шаг за шагом со скриншотами.

«Очень быстрый парсинг, спасибо большое! Даже получилось чуть больше номеров, всем рекомендую! Делал заказ 2 раза, всё устраивает, буду обращаться ещё.»

sotasoftdv · Kwork