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

В этой статье разберём, какие инструменты подходят для парсинга товарных данных по освещению, как структурировать выгрузку и какие ограничения нужно учитывать, чтобы не получить бан по IP или искажённые данные.

Что именно парсят в категории «лампы»

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

Типовой набор данных для мониторинга цен и аналитики ассортимента:

  • 💡 Название и артикул — для сопоставления одинаковых товаров у разных продавцов.
  • 💰 Цена и цена со скидкой — основа конкурентного мониторинга.
  • 🔌 Характеристики: мощность, цоколь (E27, E14, GU10), световой поток, цветовая температура.
  • 📦 Наличие и остатки — если площадка их отображает.
  • Рейтинг и число отзывов — косвенный показатель спроса.

Отдельный сценарий — парсинг прайсов поставщиков в форматах CSV, XLSX или YML. Здесь задача проще технически, но сложнее в нормализации: один и тот же параметр «цветовая температура» у разных поставщиков может называться по-разному и указываться в разных форматах.

Инструменты: от готовых сервисов до собственных скриптов

Выбор инструмента зависит от объёма, частоты сбора и технических навыков. Универсального решения нет — у каждого подхода есть границы применимости.

ПодходКому подходитОграничения
Облачные парсеры (no-code сервисы)Маркетологам без опыта программированияЛимиты тарифов, шаблонная логика, сложно с динамическими страницами
Десктопные программы-парсерыРазовые выгрузки среднего объёмаРучная настройка селекторов, ломается при смене вёрстки
Скрипты на Python (requests, BeautifulSoup, Scrapy)Регулярный сбор, кастомная логикаНужны навыки разработки и поддержка кода
Браузерная автоматизация (Playwright, Selenium)Сайты с рендерингом через JavaScriptМедленнее, заметнее для антибот-систем
Официальные API маркетплейсовПродавцы, работающие со своими кабинетамиДоступ только к своим данным или ограниченной аналитике

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

📊 Какая у вас цель парсинга данных по лампам?
Мониторинг цен конкурентов
Сбор каталога поставщиков
Анализ ниши перед запуском товара
Наполнение собственного интернет-магазина

Как устроен парсинг карточек товаров

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

Многие площадки подгружают цены и характеристики через JavaScript после загрузки страницы. В этом случае простой запрос через requests вернёт пустой каркас, и придётся либо искать внутренний API, к которому обращается фронтенд, либо рендерить страницу через headless-браузер. Поиск внутренних запросов делается через вкладку Network в инструментах разработчика браузера — часто там обнаруживается JSON-эндпоинт с готовыми структурированными данными.

import requests

from bs4 import BeautifulSoup

url = "https://example-shop.ru/catalog/lampy-led/"

resp = requests.get(url, headers={"User-Agent": "Mozilla/5.0"})

soup = BeautifulSoup(resp.text, "html.parser")

for card in soup.select(".product-card"):

title = card.select_one(".product-card__title")

price = card.select_one(".product-card__price")

print(title.text.strip() if title else "-",

price.text.strip() if price else "-")

Это упрощённый пример для статической страницы. Названия CSS-классов у каждого сайта свои — их нужно смотреть в исходном коде конкретной площадки, и они могут меняться при обновлении вёрстки.

💡

Перед написанием парсера откройте исходный HTML страницы (Ctrl+U) и поищите в нём цену товара. Если её там нет — данные подгружаются скриптами, и простого requests будет недостаточно.

Нормализация характеристик ламп

Главная специфика категории — хаос в атрибутах. Одна и та же лампа у разных продавцов описывается по-разному: мощность то в ваттах, то в «эквиваленте накаливания», цветовая температура то числом в кельвинах, то словами «тёплый белый».

Чтобы выгрузка была пригодна для анализа, заложите этап нормализации:

  • 🧹 Приведение единиц измерения к одному виду (например, «4000 К», «4000K» и «4000 кельвин» — к числу 4000).
  • 🔗 Сопоставление дублей по комбинации бренд + артикул + ключевые характеристики.
  • 🗂 Отдельные колонки для структурированных полей: цоколь, форма колбы, диммируемость.
  • 🕒 Фиксация даты и времени сбора — цены на маркетплейсах меняются часто.
⚠️ Внимание: не полагайтесь на название товара как источник характеристик. Продавцы нередко пишут в заголовке «лампа 100W», имея в виду эквивалент лампы накаливания, а реальная потребляемая мощность светодиодной лампы значительно ниже. Берите данные из блока характеристик, а не из заголовка.
💡

Ценность парсинга определяется не объёмом собранных строк, а качеством нормализации: сырые данные без приведения единиц и дедупликации почти бесполезны для аналитики.

Блокировки и как с ними работать

Маркетплейсы и крупные магазины отслеживают автоматический трафик. Признаки того, что парсер «спалился»: страницы с капчей, пустые ответы, HTTP-ошибки 403 или 429, редиректы на страницу проверки.

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

⚠️ Внимание: перед массовым сбором проверьте файл robots.txt площадки и её пользовательское соглашение. Ряд площадок прямо запрещает автоматический сбор данных, и нарушение может привести не только к блокировке IP, но и к претензиям со стороны владельца площадки. Используйте полученные данные в рамках законодательства вашей юрисдикции.
Что делать, если площадка отдаёт капчу даже при умеренной скорости

Возможные варианты: снизить частоту запросов ещё сильнее и добавить случайные паузы; сменить пул прокси на резидентные; проверить, нет ли у площадки официального API или готовой выгрузки для партнёров; рассмотреть сбор в несколько сессий с большими перерывами. Гарантированного способа обхода не существует — антибот-системы постоянно обновляются.

Пошаговый запуск первого парсера

Порядок действий для старта без лишних потерь времени:

  1. Определите точный список полей, которые нужны на выходе, и формат результата (CSV, Google Sheets, база данных).
  2. Вручную изучите 3–5 карточек товаров: где лежат характеристики, как устроена пагинация каталога, подгружаются ли данные скриптами.
  3. Соберите список URL категорий (например, «лампы E27», «лампы GU10», «филаментные»).
  4. Напишите или настройте парсер на одной странице, проверьте корректность извлечения каждого поля.
  5. Запустите сбор на малом объёме (одна категория), проверьте выгрузку на пропуски и дубли.
  6. Только после этого масштабируйте на весь каталог с контролем скорости.

☑️ Проверка выгрузки перед использованием

Выполнено: 0 / 5

Типичные ошибки при парсинге товаров освещения

Чаще всего проблемы возникают не на этапе сбора, а на этапе интерпретации. Парсер исправно выгружает данные, но выводы по ним оказываются неверными.

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

⚠️ Внимание: автоматическое сопоставление товаров только по названию даёт высокий процент ложных совпадений. Названия карточек ламп у разных продавцов почти никогда не совпадают дословно — используйте связку бренд + артикул производителя, а если артикула нет, комбинацию ключевых характеристик.
💡

Начинайте с малого: одна категория, ручная сверка, затем масштабирование. Это дешевле, чем переделывать полный сбор после обнаружения системной ошибки в извлечении полей.

FAQ: частые вопросы

Можно ли парсить маркетплейсы без программирования?

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

Как часто нужно обновлять данные о ценах?

Зависит от цели. Для мониторинга конкурентов в активной нише обычно собирают данные ежедневно или несколько раз в день. Для анализа ассортимента достаточно еженедельного сбора. Учитывайте, что слишком частые запросы повышают риск блокировки.

Почему парсер собрал меньше товаров, чем показано в категории?

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

Что делать, если сайт изменил вёрстку и парсер перестал работать?

Это штатная ситуация. Нужно заново проинспектировать страницу, обновить CSS-селекторы или XPath в коде и прогнать тестовый сбор. Чтобы снизить затраты на поддержку, выносите селекторы в конфигурацию, а не зашивайте в логику скрипта, и добавьте автоматическую проверку: если ключевое поле не найдено, парсер должен сообщить об этом, а не молча записать пустоту.

Легален ли парсинг открытых данных о товарах?

Однозначного ответа нет — это зависит от юрисдикции, условий использования конкретной площадки и способа применения данных. Общедоступность информации не означает автоматического права на её массовый сбор. Перед коммерческим использованием выгрузок изучите пользовательское соглашение площадки и при необходимости проконсультируйтесь с юристом.