Данные и аналитика · 14 октября 2026 · 3 мин чтения

Парсинг динамических сайтов: JavaScript, API и headless-браузеры

Эта страница на узбекском: /uz/blog/dinamik-saytlarni-parsing-qilish

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

Почему простой запрос не работает

Многие сайты построены как одностраничные приложения на React, Vue или Angular. Сервер отдаёт минимальный HTML, а браузер выполняет скрипты, которые запрашивают данные с сервера и строят страницу. Программа, которая не выполняет JavaScript, видит только каркас.

Признаки динамического сайта:

  • в исходном коде страницы нет нужных данных
  • данные появляются после загрузки с задержкой
  • при прокрутке подгружаются новые элементы
  • адрес страницы меняется без полной перезагрузки

Подход 1. Найти внутренний API

Это самый эффективный способ. Если браузер получает данные с сервера, значит, существует запрос, который их возвращает — обычно в формате JSON. Его можно найти:

  1. Открыть инструменты разработчика в браузере
  2. Перейти на вкладку сетевых запросов
  3. Загрузить страницу и найти запросы, возвращающие нужные данные
  4. Изучить параметры: страница, фильтры, сортировка

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

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

Подход 2. Headless-браузер

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

  • Playwright — современная библиотека для управления Chromium, Firefox и WebKit
  • Selenium — давно известный инструмент, поддерживает многие языки
  • Puppeteer — библиотека для управления Chromium из Node.js

Браузер позволяет нажимать кнопки, прокручивать страницу, заполнять формы, ждать появления элементов.

Минусы: значительно больше ресурсов, медленнее, сложнее масштабировать. Для сбора тысяч страниц это ощутимо.

Бесконечная прокрутка и подгрузка

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

Ожидание элементов

Типичная ошибка при работе с браузером — пытаться извлечь данные до их загрузки. Нужно ждать появления конкретного элемента, а не фиксированное время. Инструменты вроде Playwright имеют встроенные механизмы ожидания.

Защита от автоматизации

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

Нагрузка и этика

  • Ограничивайте частоту запросов, чтобы не мешать работе сайта
  • Собирайте только нужные данные
  • Учитывайте условия использования сайта и файл robots.txt
  • Не собирайте персональные данные без законных оснований
  • Кэшируйте результаты, чтобы не загружать одни и те же страницы

Как выбрать подход

  1. Есть официальный API — используйте его
  2. Данные приходят из внутреннего API — обращайтесь к нему
  3. Страница строится сложно, данных мало — headless-браузер
  4. Нужен большой объём — комбинация: браузер для получения токенов и API для данных

Поддержка

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

Обсудим задачу

Оставьте имя и телефон — перезвоним, расспросим о процессе и предложим, с чего начать.

Обсудить проект

Статьи по теме

Данные и аналитика

Меры в Power BI: расчёт показателей без ошибок

Меры — это формулы, по которым Power BI считает выручку, маржу и рост. Объясняем, как они работают и почему одна неверная мера портит весь отчёт.

14 октября 2026

Данные и аналитика

Power BI с нуля: первый отчёт по своим данным

Первый отчёт в Power BI можно собрать на своих данных без программиста. Даём порядок действий и предупреждаем об ошибках, на которых спотыкаются новички.

14 октября 2026

Данные и аналитика

Power BI и Excel: когда таблиц уже недостаточно

Excel никуда не уходит, но у отчётности в таблицах есть потолок. Разбираем признаки, что вы его достигли, и как совместить Excel с Power BI.

14 октября 2026

Данные и аналитика

Встраивание отчётов Power BI в сайт и портал через API

Отчёт Power BI можно показать внутри своего портала, CRM или личного кабинета клиента. Разбираем варианты встраивания и где тут риски утечки данных.

14 октября 2026

Данные и аналитика

Потоки данных Power BI: общая подготовка данных для отчётов

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

14 октября 2026

Данные и аналитика

Дашборд отдела продаж: план, факт и конверсия по менеджерам

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

14 октября 2026

Заявка

Обсудим задачу

Оставьте имя и телефон — перезвоним, расспросим о процессе и предложим, с чего начать.

Или позвоните

+998 94 444 48 85

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