Как парсить сайт: пошаговый разбор
Разберём, из каких шагов состоит сбор данных с сайта — от первого взгляда на страницу до готовой таблицы. Это поможет понять, сколько времени займёт задача и где обычно возникают сложности.
Шаг 1. Определить цель и поля
Всё начинается не с кода, а с вопроса «зачем». От цели зависят поля, объём и частота. Для мониторинга цен достаточно артикула, названия, цены и наличия. Для наполнения магазина — описаний, характеристик и фото. Для анализа рынка — продавцов, рейтингов и отзывов.
Хорошая практика — сразу нарисовать желаемую таблицу: какие колонки, в каком порядке, в каком формате цены и даты. Это экономит время на переделки.
Шаг 2. Изучить структуру сайта
Дальше нужно понять, как устроен источник:
- Где лежат нужные страницы. Каталог → категории → подкатегории → карточки. Есть ли карта сайта (sitemap.xml), через которую можно получить все ссылки сразу.
- Как устроена пагинация. Номера страниц, кнопка «Показать ещё» или бесконечная прокрутка.
- Откуда берутся данные. Сразу в HTML страницы или подгружаются скриптом после открытия. Во втором случае часто удобнее найти запрос, который возвращает данные в JSON.
- Есть ли варианты товара. Цвета и размеры с отдельными ценами и наличием.
Шаг 3. Собрать ссылки на все страницы
Парсер обходит категории и пагинацию и составляет список адресов карточек. На этом этапе важно проверить полноту: сравнить число собранных ссылок с количеством товаров, которое показывает сам сайт в категориях.
Шаг 4. Извлечь данные из страниц
Для каждого поля описывается правило, где его искать на странице. Обычно это CSS-селекторы или выражения XPath — «адреса» элементов внутри HTML. Например, цена может лежать в элементе с классом price, а артикул — в таблице характеристик в строке «Артикул».
Правила проверяют на десятке разных карточек: у товаров со скидкой, без наличия, с вариантами. Именно здесь ловится большинство ошибок.
Шаг 5. Очистить и привести к единому виду
- цены — к числам без пробелов и символа валюты;
- наличие — к понятным значениям «есть / нет / под заказ»;
- характеристики — по отдельным колонкам;
- дубли — удалить (один товар может встречаться в нескольких категориях).
Подробнее — в статье как удалить дубликаты.
Шаг 6. Сохранить результат
Данные записываются в нужный формат: Excel, CSV, Google Таблицу, JSON или базу данных. Для регулярных задач настраивается расписание и сравнение с прошлой выгрузкой — что подорожало, что появилось, что пропало. Форматы описаны на странице «Форматы выгрузки».
Правила бережного сбора
Добросовестный парсинг не мешает работе сайта и ограничивается открытыми данными:
- собирать только то, что опубликовано для всех посетителей;
- делать паузы между запросами и не создавать лишнюю нагрузку;
- не собирать персональные данные физических лиц;
- не копировать на свой сайт тексты и фото, защищённые авторским правом, без разрешения.
О правовой стороне — в статье «Законно ли парсить сайты».
Типичные ошибки
- не учтены товары в нескольких категориях — в таблице появляются дубли;
- не учтены варианты товара — теряются цены отдельных размеров;
- сайт поменял вёрстку — регулярный парсер молча начинает отдавать пустые поля;
- цена собрана как текст — с ней нельзя считать в Excel.
Если не хочется разбираться в технических деталях, сбор можно заказать под ключ: вы описываете задачу, а получаете готовую таблицу. См. парсинг сайтов на заказ.
Как узнать, можно ли парсить сайт
Перед сбором данных стоит проверить три вещи:
- Открыты ли данные. Если информация видна любому посетителю без входа в аккаунт — это открытые данные. Если нужна авторизация или оплата — такие данные собирать нельзя без разрешения владельца.
- Файл robots.txt. Он лежит по адресу
site.kz/robots.txtи показывает, какие разделы владелец просит не обходить роботам. Это ориентир добросовестного сбора. - Правила сайта. Пользовательское соглашение может содержать условия об автоматическом доступе и использовании контента.
Подробнее о правовой стороне — законно ли парсить сайты.
Как парсить сайт в Excel
Если результат нужен в Excel, есть три варианта:
- Встроенная загрузка «Данные → Из Интернета» — подходит, если на странице есть обычная HTML-таблица.
- Google Таблицы + IMPORTXML — потом таблицу можно скачать в формате Excel. Удобно для десятков значений с простых сайтов (см. IMPORTXML).
- Парсер с выгрузкой в XLSX — для каталогов, маркетплейсов и регулярных задач. Результат — готовый файл с колонками под вашу задачу.
Как парсить динамический сайт
Динамическим называют сайт, где данные появляются не сразу, а подгружаются скриптами — после открытия страницы, при прокрутке или нажатии «Показать ещё». Так устроены большинство маркетплейсов и современных магазинов. Признак: если открыть «Просмотр кода страницы» (Ctrl+U), нужной цены в исходном коде нет.
Подходы к таким сайтам:
- найти источник данных — часто страница сама запрашивает данные в формате JSON, и их удобнее брать оттуда;
- открывать страницу как браузер — с выполнением скриптов; это медленнее, но видит всё, что видит пользователь.
Простые инструменты (IMPORTXML, «Из Интернета») с динамическими сайтами обычно не справляются.
Как парсить сайт бесплатно
Бесплатные варианты существуют: функции Google Таблиц, расширения браузера, бесплатные тарифы сервисов, open-source библиотеки для программистов. Их ограничения — объём, скорость, отсутствие поддержки и необходимость разбираться самому. Для разовой задачи на пару сотен строк они подойдут. Для бизнес-процесса, где отчёт нужен каждое утро, «бесплатный» способ часто обходится дороже из-за времени сотрудников.
Как парсить быстро и правильно
- собирайте только нужные страницы, а не весь сайт;
- используйте карту сайта (sitemap.xml) для получения списка ссылок;
- не делайте запросы чаще, чем нужно, — это и бережно к сайту, и надёжнее;
- проверяйте результат на выборке перед полным запуском;
- для регулярного сбора сравнивайте новую выгрузку с предыдущей — так видны и изменения на рынке, и сбои парсера.
Если хочется пропустить все эти шаги и сразу получить таблицу — опишите задачу, и мы сделаем пробную выгрузку: парсинг сайтов на заказ.
Читайте также
Парсер сайтов: что это, какие бывают и как выбрать
Программы, онлайн-сервисы, расширения и сбор под ключ — сравнение вариантов.
Читать →Открытые данные: что это и как их использовать в бизнесе
Какая информация считается общедоступной и как превратить её в аналитику.
Читать →Законно ли парсить сайты
Открытые данные, персональные данные, авторское право и нагрузка на сайт — где границы.
Читать →Что такое парсинг простыми словами
Как работает парсинг сайтов, чем отличается от скрапинга и зачем он бизнесу.
Читать →Частые вопросы
Можно ли спарсить сайт без программирования?
Простые таблицы — да: с помощью расширений браузера или функции IMPORTXML в Google Таблицах. Для больших каталогов, регулярных выгрузок и сайтов с динамической подгрузкой обычно нужен настроенный парсер или заказ сбора под ключ.
Сколько времени занимает парсинг сайта?
Настройка для типового интернет-магазина — от нескольких часов до пары дней. Сам сбор — от минут до нескольких часов в зависимости от числа страниц и бережного темпа запросов.
Как узнать, можно ли парсить сайт?
Проверьте, что данные открыты без входа в аккаунт, посмотрите файл robots.txt и правила сайта. Собирайте только общедоступную информацию и не создавайте лишней нагрузки.
Как парсить динамический сайт?
Найти запрос, которым страница получает данные (часто JSON), или открывать страницу с выполнением скриптов, как это делает браузер. Простые инструменты вроде IMPORTXML с такими сайтами обычно не справляются.
Как парсить сайт в Excel?
Через «Данные → Из Интернета» для страниц с таблицами, через IMPORTXML в Google Таблицах для простых сайтов или с помощью парсера, который сразу выгружает результат в XLSX.
Нужны данные для вашего бизнеса? Опишите задачу
Пришлите ссылку на сайт или маркетплейс и напишите, какие данные нужны. Мы оценим задачу, назовём срок и стоимость и покажем пример результата на ваших данных до оплаты.
- Ответим в течение рабочего дня
- Пробная выгрузка до начала работ
- Разовый сбор или регулярный отчёт по расписанию
- Только открытые источники — без персональных данных
Или напрямую: +7 705 277 80 80 · WhatsApp · info@life-com.kz