Все статьиРуководства7 мин

Скрейпинг страниц оформления заказа для анализа отказов

Как извлекать данные со страниц checkout для оптимизации конверсии: поля форм, сообщения об ошибках, итоговые суммы. js_actions, мониторинг, AI vs CSS-селекторы.

Команда InfraProxy

20 февраля 2026 г.

#e-commerce#checkout#отказ корзины#конверсия#API для скрейпинга#js_actions

Проблема: вы не видите трения checkout без данных страницы

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

Для оптимизации конверсии нужны страничные данные:

  • Поля формы — какие поля присутствуют, обязательны ли они, есть ли подсказки
  • Сообщения об ошибках — текст при неверном вводе, при отказе платежа
  • Итоговые суммы — базовая цена, скидки, доставка, налоги, итог
  • Блокирующие элементы — предупреждения о недоступности доставки, ограничения по региону

Скриншоты и ручная проверка не масштабируются. Автоматизированный сбор через скрейпинг даёт возможность сравнивать checkout разных магазинов, отслеживать изменения и строить A/B-тесты на основе фактов.

Почему для checkout нужен JS-рендеринг, TLS и прокси

Страницы оформления заказа — одни из самых защищённых в e-commerce:

  1. JavaScript-зависимость — формы, калькуляторы доставки, валидация полей работают целиком на клиенте. Обычный HTTP-запрос возвращает пустой каркас.
  2. TLS-отпечатки — антибот-системы проверяют соответствие User-Agent и TLS. Несоответствие ведёт к блокировке или CAPTCHA.
  3. Rate limiting и блокировки — агрессивные запросы с одного IP быстро приводят к 403 или CAPTCHA. Нужна ротация прокси и разумная частота.
  4. Геозависимость — цены и варианты доставки зависят от региона. Для корректных данных нужны прокси из целевой страны.

API для скрейпинга с поддержкой use_js_render, резидентными прокси и браузерными TLS-профилями решает эти задачи. Вы передаёте URL страницы checkout и правила извлечения — получаете структурированный JSON.

Пошаговое извлечение полей, ошибок и сумм

Базовые extract_rules

{
  "url": "https://example.com/checkout",
  "use_js_render": true,
  "use_residential": true,
  "extract_rules": {
    "form_fields": {
      "selector": "form input, form select",
      "type": "list",
      "fields": {
        "name": "@name",
        "type": "@type",
        "placeholder": "@placeholder",
        "required": "@required"
      }
    },
    "error_messages": {
      "selector": ".error-message, .validation-error, [role=alert]",
      "type": "list",
      "fields": {
        "text": ":self"
      }
    },
    "subtotal": ".cart-subtotal, .order-subtotal",
    "shipping": ".shipping-cost, .delivery-price",
    "tax": ".tax-amount",
    "total": ".order-total, .grand-total"
  }
}

Селекторы подбираются под конкретный сайт. Синтаксис @name, @type извлекает атрибуты элементов.

js_actions для имитации ввода и триггера валидации

Часто ошибки валидации появляются только после ввода данных и отправки формы. Для их извлечения используйте js_actions — последовательность действий в браузерной среде:

{
  "url": "https://example.com/checkout",
  "use_js_render": true,
  "js_actions": [
    {"action": "type", "selector": "#email", "text": "test@example.com"},
    {"action": "type", "selector": "#phone", "text": "123"},
    {"action": "click", "selector": "button[type=submit]"},
    {"action": "wait_for", "selector": ".error-message", "timeout": 3000}
  ],
  "extract_rules": {
    "validation_errors": {
      "selector": ".error-message, .field-error",
      "type": "list",
      "fields": {
        "field": "@data-field",
        "message": ":self"
      }
    }
  }
}

Сценарий: заполнить поля (в т.ч. с заведомо неверными данными), нажать «Оформить», дождаться появления сообщений об ошибках, извлечь их по селектору. Так можно автоматически собирать полный набор валидационных сообщений для анализа UX.

Мониторинг: пайплайн с batch-задачами

Для регулярного мониторинга checkout нескольких магазинов настройте пайплайн:

  1. Список URL — страницы checkout целевых интернет-магазинов (своих или конкурентов)
  2. Batch-запрос — отправка массива URL в API с одинаковыми extract_rules
  3. Расписание — запуск раз в день/неделю через cron, n8n или Airflow
  4. Хранение и сравнение — запись результатов в БД или таблицу, сравнение с предыдущими версиями
  5. Алерты — уведомление при появлении новых полей, изменении текста ошибок или структуры формы

При изменении вёрстки селекторы могут перестать срабатывать. Настройте проверку: если extract пустой или неполный — алерт разработчику для обновления правил.

AI-экстракция vs CSS-селекторы

CSS-селекторы (extract_rules) — быстры, дёшевы, предсказуемы. Требуют стабильной структуры DOM. При редизайне checkout селекторы ломаются, нужна ручная правка. Подходят для мониторинга фиксированного набора магазинов с известной вёрсткой.

AI-экстракция (extract_schema / extract_prompt) — вы описываете целевую структуру (поля формы, ошибки, суммы), модель извлекает данные без привязки к конкретным классам. Устойчивее к изменениям, удобнее для разнородных сайтов. Минусы: выше стоимость и латентность.

Рекомендация: для однотипных checkout (например, один и тот же движок магазина) — extract_rules. Для агрегации данных с десятков разных платформ — рассмотрите AI-экстракцию.

Важные нюансы

Конфиденциальность и тестовые данные

При скрейпинге checkout используйте только тестовые email, телефоны и адреса. Не передавайте реальные персональные данные. Многие магазины имеют тестовый режим или демо-страницы — предпочтительно работать с ними.

session_id для многошагового checkout

Если checkout состоит из нескольких шагов (корзина → доставка → оплата), передавайте один и тот же session_id во всех запросах. API будет направлять трафик через один IP и сохранять cookies — состояние корзины и прогресс не потеряются.

Таймауты

Страницы checkout с тяжёлыми калькуляторами доставки могут загружаться 15–30 секунд. Увеличьте timeout до 45–60 секунд. Для js_actions с ожиданием ошибок валидации достаточно 3–5 секунд.

Резюме

  • Без страничных данных checkout нельзя понять причины отказов от оформления заказа
  • Извлекайте поля форм, сообщения об ошибках и итоговые суммы через extract_rules
  • Используйте js_actions для имитации ввода и триггера валидации
  • Настройте мониторинг с batch-задачами и алертами при изменении структуры
  • Выбирайте CSS-селекторы для стабильных сайтов, AI-экстракцию — для разнородных источников
  • Учитывайте: JS-рендеринг, резидентные прокси, TLS-отпечатки, session_id для многошаговых checkout

InfraProxy Scraper API поддерживает js_actions, резидентные прокси и извлечение данных со страниц checkout для анализа конверсии и отказов корзины. Узнайте условия.

Нужны надёжные прокси для вашего проекта?

InfraProxy предоставляет серверные и резидентные прокси для российского бизнеса. Договор, постоплата, техподдержка.