Decodo Веб-Скрейпинг · Учебник 05

Сканируйте динамические страницы с JavaScript и действиями браузера

Переходите от MCP к прямому API Decodo, когда публичной странице требуется контролируемый клик, ввод, прокрутка, ожидание или захват XHR перед извлечением.

Официальная документация Decodo Browser Actions с перечнем действий: клик, ввод, прокрутка, ожидание, ожидание элемента и получение ресурсов.
Время чтения
13 минут
Последнее обновление
Август 2026

0 из 13 завершено

Завершить & далее →

Последнее тестирование и обновление: Август 2026

MCP выполняет множество задач. Переходите к Web Scraping API, когда нужно отобразить публичную страницу и взаимодействовать с ней перед сбором данных.

Decodo в данный момент поддерживает действия браузера, включая click, input, scroll, scroll_to_bottom, wait, wait_for_element, и fetch_resource.

Официальная документация по действиям браузера Decodo, показывающая поддерживаемые действия и аргументы селектора.
Официальная справка по действиям браузера, зафиксированная 19 августа 2026 года. Используйте действия для детерминированного состояния публичной страницы, а не для входа в приватные области.

Шаг 1: проверьте токен API с помощью безопасного запроса

Используйте конечную точку Decodo в реальном времени:

curl --запрос POST \
  --url 'https://scraper-api.decodo.com/v2/scrape' \
  --заголовок 'Accept: application/json' \
  --заголовок 'Authorization: Basic TOKEN_VALUE' \
  --заголовок 'Content-Type: application/json' \
  --данные '{
    "url": "https://ip.decodo.com"
  }'

Заменить TOKEN_VALUE локально. Никогда не сохраняйте готовую команду в истории оболочки, исходных файлах или скриншотах.

Официальная документация по Decodo Web Scraping API для быстрого старта, показывающая учетные данные, первый запрос и синхронный, асинхронный и пакетный режимы.
Официальное быстрое руководство по API, зафиксированное 19 августа 2026 года.

Шаг 2: выполнять JavaScript только при необходимости

Начните с простого и дешевого решения. Если необходимого элемента нет, потому что страница загружает его позже, включите документированную опцию безголового режима/рендеринга для этого элемента. Рендеринг использует больше ресурсов браузера и может изменить стоимость запроса.

Запишите, почему включен рендеринг. «Это может помочь» не является тестом.

Шаг 3: дождитесь стабильного элемента

Пример тела запроса:

{
  "target": "universal",
  "url": «https://example.com/public-catalog»,
  «browser_actions»: [
    {
      "type": «wait_for_element»,
      «селектор»: {
        "type": «css»,
        «ценность»: "[data-results-ready='true']"
      },
      «timeout_s»: 8
    }
  ]
}

Предпочитаете стабильный ID или data-* атрибут. Избегайте селекторов, основанных на визуальном положении, таких как «третья кнопка» или длинные строки классов.

Шаг 4: добавьте одно взаимодействие

{
  "target": "universal",
  "url": «https://example.com/public-catalog»,
  «browser_actions»: [
    {
      "type": «щелчок»,
      «селектор»: {
        "type": "текст",
        «ценность»: «Загрузить больше»
      },
      «on_error»: «ошибка»
    },
    {
      "type": «wait_for_element»,
      «селектор»: {
        "type": «css»,
        «ценность»: "[data-page='2']"
      },
      «timeout_s»: 8
    }
  ]
}

Использовать on_error: "error" если пропустить действие, результат становится недействительным. Использование skip только когда действие необязательно, и на выходе записано, что оно не было выполнено.

Шаг 5: предпочитайте сетевые данные, когда они являются настоящим источником

Если страница загружает публичный JSON-ресурс, fetch_resource можно напрямую собрать соответствующий ответ Fetch/XHR. Документы Decodo указывают, что fetch_resource должен использоваться отдельный запрос и не может комбинироваться с другими действиями.

{
  "target": "universal",
  "url": «https://example.com/public-catalog»,
  «browser_actions»: [
    {
      "type": "fetch_resource",
      "filter": "/api/products",
      «on_error»: «ошибка»
    }
  ]
}

Контрольный список проверки

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

Официальные ссылки