Интеграции и данные · 8 мин чтения

Парсинг сайтов: что это, законно ли и чем парсить

Парсинг сайтов простыми словами: как работает парсер, для чего нужен бизнесу, что говорят ГК РФ и 152-ФЗ, чем парсить, почему сбор ломается и как посчитать окупаемость.

Обложка статьи о парсинге сайтов: на тёмном антрацитово-зелёном фоне слева крупный заголовок, справа окно браузера с карточками товаров, через которые проходит неоново-бирюзовый луч сканера, и стрелка в таблицу с колонками товар, цена, дата
Коротко

Парсинг сайтов это автоматический сбор открытых данных со страниц в таблицу или базу: цены, наличие, характеристики. Сбор открытых данных сам по себе не запрещён, но по статье 1334 ГК РФ нельзя без разрешения извлекать существенную часть чужой базы данных и использовать её дальше, а по статье 10.1 152-ФЗ обязанность доказать законность обработки общедоступных персональных данных лежит на том, кто их обрабатывает. Для разового сбора хватит сервиса или программы, для регулярного мониторинга нужен скрипт или заказной парсер с проверками. Если у источника есть API или фид, берите данные оттуда.

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

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

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

Представьте сотрудника, который каждое утро открывает сайты конкурентов, ищет нужные товары и переписывает цены в таблицу. Парсер делает то же самое, только быстрее и без усталости. Слово пришло от английского parse, «разбирать»: программа разбирает код страницы и достаёт из него нужные кусочки.

Любой парсер проходит пять шагов:

  1. Список адресов. Какие страницы открывать: каталог, карточки товаров, результаты поиска.
  2. Загрузка страниц. Запрос к сайту с паузами между запросами, чтобы не создавать нагрузку.
  3. Извлечение полей. Программа находит на странице название, цену, наличие по заранее заданным правилам.
  4. Проверка и очистка. Убрать пустые и странные значения, привести цены к числу, отметить дату сбора.
  5. Выгрузка. Таблица, база, CRM или дашборд с мониторингом цен.
Схема работы парсера из пяти шагов: список адресов, загрузка страниц с паузами и учётом robots.txt, извлечение полей название, цена и наличие, проверка и очистка с датой сбора, выгрузка в таблицу, CRM или дашборд; под конвейером отмечены точки, где сбор обычно ломается
Пять шагов любого парсера. Ломается сбор обычно на загрузке (блокировки) и извлечении (сайт поменял вёрстку).

Рядом с парсингом часто стоит слово «API». Если у сайта или поставщика есть API или готовый файл выгрузки (например, фид товаров в формате YML или CSV), берите данные оттуда: это законный, стабильный и быстрый способ, который не ломается от смены дизайна.

Для чего бизнесу парсинг

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

ЗадачаКакие данныеКак часто обычно собирают
Мониторинг цен конкурентовЦена, скидка, наличие по вашим позициямРаз в сутки или реже, ходовые позиции чаще
Каталоги поставщиковНовые товары, характеристики, остаткиПо графику обновления поставщика
SEO-аудит своего сайтаЗаголовки, ответы сервера, битые ссылки, дублиПеред запуском и после крупных изменений
Анализ ассортимента рынкаКакие товары и услуги есть у конкурентовРаз в месяц или квартал
Отзывы о своей компанииТексты, оценки, даты на площадкахРаз в день или неделю

Частота стоит денег: чем чаще собираете, тем больше запросов, блокировок и поддержки. Как выбрать частоту для мониторинга цен и не платить за лишнее, подробно разобрано в статье почему парсинг цен работает нестабильно.

Законно ли парсить сайты

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

Права изготовителя базы данных: статья 1334 ГК РФ

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

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

Персональные данные: статья 10.1 закона 152-ФЗ

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

Правила сайта, robots.txt и нагрузка

Файл robots.txt описывает, какие разделы владелец сайта просит не обходить роботам. Стандарт RFC 9309 прямо говорит, что эти правила не являются механизмом авторизации доступа, то есть технически они ничего не запрещают. Но это ясно выраженная воля владельца, и её стоит соблюдать, как и пользовательское соглашение сайта. Отдельно про нагрузку: частые запросы без пауз мешают работе чужого сайта, а обход капчи, авторизации и других защит выходит за рамки сбора открытых данных. Когда данные нужно переносить через окна программ, помогают программные роботы, они разобраны в статье RPA: что это.

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

Что не делать никогда. Собирать персональные данные без основания, обходить капчу и авторизацию, собирать из закрытых разделов по чужим учётным записям, создавать нагрузку, которая мешает сайту работать. Ни один инструмент из обзора ниже этого не оправдывает.

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

Чем парсить: четыре варианта

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

Чем парсить: четыре класса инструментовПереключайте вкладки. В каждой: для чего подходит, сколько стоит по официальным данным и где подвох.
Кто настраиваетсам пользователь
Объёммалый и средний
Оплатаподписка или лимиты
  • Что это: облачные конструкторы и расширения браузера, где поля для сбора выбирают мышкой.
  • Подходит: разовый сбор с одного-двух простых сайтов, проверка гипотезы.
  • Подвох: при смене вёрстки настройку чинить вам; лимиты тарифа быстро заканчиваются на больших каталогах.
  • Цены: у каждого сервиса свои тарифы и лимиты, сравнивайте их на официальных страницах перед выбором.

Если у источника есть API или файл выгрузки, берите данные оттуда: это стабильнее любого парсера и не зависит от дизайна сайта.

СитуацияЧто подойдёт
Разово собрать данные с одного простого сайтаОблачный сервис или расширение браузера
Проверить свой сайт перед запускомПрограмма-краулер для SEO-аудита
Регулярно собирать цены с 5–20 сайтовСкрипт на Python у своего разработчика или заказной парсер
Данные нужны в CRM, учёте или дашборде каждый деньЗаказная разработка с проверками и журналом

Почему парсинг ломается и как сделать его устойчивым

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

  • Сменилась вёрстка. Цена переехала в другой блок, и парсер молча собирает пустоту.
  • Блокировки. Сайт отвечает кодом 429 «слишком много запросов» или показывает проверку на робота.
  • Данные подгружаются скриптом. В исходном коде страницы цены нет, она появляется после выполнения JavaScript.
  • Разные карточки. У части товаров другая разметка, варианты, цена «от».

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

Пример: насколько трудно стабильно собирать данные с разных сайтовУсловная оценка по шкале от 1 до 10. Это пример способа оценки, а не статистика: оценивайте свои источники так же перед заказом.
Фид или API поставщика (YML, CSV, JSON)1
Простой каталог, цена в коде страницы3
Каталог с фильтрами, вариантами и пагинацией5
Цены подгружаются скриптом после загрузки7
Большой маркетплейс с частыми изменениями8
Данные только после входа или за капчейстоп

Как оценено в примере: учитывалось, нужен ли запуск JavaScript, как часто меняется вёрстка и насколько разнородны карточки. 1–3: хватит простого скрипта и проверки полноты. 4–8: закладывайте поддержку и оповещения о сбоях. «Стоп»: закрытые разделы и защиту не обходят, такие данные запрашивают у владельца.

Что делать с собранными данными

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

  • Сопоставление товаров. «Дрель X 800 Вт» у конкурента и «Дрель X-800» у вас это одна позиция или нет. Надёжнее всего сопоставлять по артикулу производителя или штрихкоду, а спорные пары подтверждать вручную один раз и хранить в таблице соответствий.
  • История. Храните не только текущую цену, но и все прошлые значения с датой сбора. Без истории нельзя понять, это акция на два дня или новая постоянная цена.
  • Адресат. Решите заранее, кто смотрит данные и что делает при изменении: категорийный менеджер, закупщик, руководитель продаж. Отчёт, который никто не открывает, это расходы без пользы.

Удобный формат для ежедневной работы: короткая сводка «что изменилось со вчера» по вашим ключевым позициям и экран с историей цен для разбора. Полный дамп каталога конкурента в таблице на десять тысяч строк обычно никто не читает.

Окупится ли мониторинг цен

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

Окупится ли парсинг цен конкурентовПодставьте свои цифры. Наборы ниже: примеры с условными цифрами, а не прогноз и не цены подрядчиков. Долю заказов, где решает цена, оцените по причинам отказов в CRM.
Окупаемость…
Заказов, где решает цена, в месяц…
Удержанных заказов в месяц…
Прибыль за вычетом поддержки, в месяц…
Итог через 12 месяцев…
Нужно заказов, где решает цена, в месяц, чтобы окупиться за год…

Как считается: заказы, где решает цена = заказы в месяц × их доля; удержанные = такие заказы × доля, которую удаётся удержать благодаря вовремя изменённой цене; прибыль = удержанные заказы × средний чек × маржа − сервер и поддержка. Отладка учитывает, что первые недели сбор работает не на всех позициях. Снижение собственной маржи при ответном снижении цены в расчёт не входит: учтите его, уменьшив маржу.

Как заказать парсинг и что прописать в задании

Хорошее задание на парсинг помещается на одну страницу и отвечает на вопросы:

  1. Какие сайты и разделы, примеры адресов страниц.
  2. Какие поля собирать и в каком виде: цена с учётом скидки или без, наличие, единица измерения.
  3. Как сопоставлять товары с вашими: по артикулу, штрихкоду или вручную подтверждённым парам.
  4. Как часто собирать и к какому часу данные должны быть готовы.
  5. Куда выгружать: таблица, база, CRM, дашборд.
  6. Какие проверки обязательны: полнота сбора, дата у каждой записи, оповещение при сбое.
  7. Правила: паузы между запросами, соблюдение robots.txt и условий сайтов, без персональных данных.
  8. Кто и в какой срок чинит сбор, когда сайт-источник меняется.

Последний пункт самый важный: парсер без поддержки перестаёт работать при первом редизайне источника. Если не хотите держать эту задачу у себя, посмотрите, как устроены услуги парсинга с проверками и дашбордами. Когда собранные данные нужно автоматически передавать в CRM, учёт или на сайт, это уже задача интеграции через API.

Что сделать на этой неделе

  • Выпишите, какие данные сотрудники сейчас собирают с чужих сайтов руками и сколько времени на это уходит.
  • Проверьте, нет ли у источника API или файла выгрузки: это лучше любого парсера.
  • Уберите из задачи всё, что касается данных о людях.
  • Для мониторинга цен выберите 50 главных позиций и посчитайте окупаемость на них, прежде чем собирать весь каталог.

Частые вопросы

Законно ли парсить сайты конкурентов?

Сбор открытых данных сам по себе законом не запрещён, но есть границы. По статье 1334 ГК РФ нельзя без разрешения извлекать всю или существенную часть чужой базы данных и использовать её дальше. Нельзя собирать персональные данные без основания и обходить защиту сайта. В спорных случаях покажите задачу юристу до запуска.

Можно ли парсить телефоны и контакты людей?

Это персональные данные, даже если они опубликованы. По статье 10.1 152-ФЗ, если данные стали общедоступными без согласия человека на распространение, доказывать законность обработки должен тот, кто их обрабатывает. Для бизнеса безопаснее такие данные парсером не собирать.

Обязательно ли соблюдать robots.txt?

Стандарт RFC 9309 прямо говорит, что правила robots.txt не являются механизмом авторизации доступа. Но это выраженная воля владельца сайта, поэтому добросовестный парсер её соблюдает вместе с пользовательским соглашением и не создаёт лишней нагрузки.

Какой программой парсить сайт без программирования?

Для разового сбора подойдут облачные сервисы и расширения браузера, где поля выбирают мышкой. Для аудита своего сайта есть программы-краулеры: например, Screaming Frog SEO Spider бесплатен до 500 адресов. Для регулярного сбора с нескольких сайтов понадобится разработчик или заказной парсер.

Почему парсер перестал собирать цены?

Чаще всего сайт-источник поменял вёрстку, начал отвечать ошибкой 429 из-за частых запросов или стал подгружать цену скриптом. Защита от тихих сбоев: проверка полноты сбора, дата у каждой цены и оповещение, когда собрано меньше обычного.

Как часто нужно собирать цены конкурентов?

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

Что лучше: парсинг или API?

Если у источника есть API или файл выгрузки, например фид товаров, берите данные оттуда. Это законный, стабильный и быстрый способ, который не ломается от смены дизайна. Парсинг нужен, когда такого канала нет.

Том Холоденин разбирает проект
Разбираю каждый сайт личноЭто не менеджер и не бот: ты сразу говоришь со мной.
Бесплатно · лично · ответ за 24 часа

Бесплатный разбор твоего сайта: найду реальные точки роста прибыли и оптимизации затрат

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

Где теряются заявки и деньгиТочки роста прибылиКакие затраты можно сократитьПлан первых шагов

Бесплатно и ни к чему не обязывает. Если улучшать нечего, так и скажу.

Спасибо! Разбор пришлю лично в течение рабочего дня.

Или сразу: как выглядит разбор и онлайн-проверка · записаться на созвон · собрать задачу в калькуляторе

Получить бесплатный разбор →