Webscraper — это инструмент, который запускает headless-браузер Chromium через Playwright, даёт скриптам страницы отработать и передаёт ИИ уже отрисованный HTML. Берите его, когда данные появляются в DOM только после выполнения скриптов: приложения на React/Vue/Svelte, страницы с бесконечной прокруткой, всё, что подгружает содержимое на клиенте.
Это медленный путь. Каждый вызов занимает 2–8 секунд, стоит дороже по ресурсам и выполняется в изолированном браузерном окружении с ограниченным числом одновременных запусков — чтобы аппетиты Chromium к памяти не мешали остальному проекту. Используйте его, только если парсер действительно не справляется.
Когда скрейпер вместо парсера
- Откройте исходный код страницы в браузере.
- Поищите в нём те данные, которые вам на самом деле нужны.
- Нашли? → берите Webparser, он в десять раз быстрее.
- Пусто или только
<div id="root"></div>? → нужен скрейпер.
Шаг 1 — Добавьте инструмент скрейпинга с рендерингом JS
Порядок тот же, что у парсера — Проекты → ваш проект → Интеграции → + Добавить инструмент — с двумя отличиями:
- Тип инструмента — Скрейпинг веб-страницы.
- Рендерить JavaScript — включите. Это единственное отличие от инструмента-парсера.
- Разрешённые домены — по-прежнему обязательны. Список строгий: перечислите точные хосты или добавьте запись с подстановкой вида
*.example.com— она покрывает и самexample.com, и все его поддомены.
Шаг 2 — Стратегия CSS-селектора
У JavaScript-приложения страница сразу после загрузки какое-то время выглядит пустой — и только потом фреймворк дорисовывает настоящее содержимое. Укажите CSS-селектор того элемента, который вам действительно нужен: Playwright дождётся его появления, прежде чем забрать HTML. Именно это отличает «получить данные» от «получить скелет загрузки».
[data-testid="invoice-total"], .order-history-listЕсли содержимое подгружается постепенно (ленивая подгрузка списка и тому подобное), выбирайте селектор, который появляется только тогда, когда данные уже на месте.
Поле Исключить работает здесь ровно так же, как у парсера: по одному селектору в строке, элементы удаляются до того, как отработает основной селектор. JavaScript-приложения обычно щедры на обвес — липкие шапки, панели про куки, виджеты чатов, полки «вам также может понравиться», — так что здесь оно окупается даже быстрее, чем на обычной серверной странице. Подробности — в статье Как создать интеграцию Webparser.
Шаг 3 — Таймауты
Жёсткий потолок одного вызова — 120 секунд, а медленные обращения начинают сворачивать примерно на 90-й. Если ваша страница честно собирается дольше, заводите эти данные за настоящей API-интеграцией.
Свои HTTP-заголовки пока нельзя задать из панели. Отдельного поля для заголовков у инструмента в интерфейсе нет, поэтому сессию через заголовок или cookie так не передать. Если страница требует особый заголовок, напишите в поддержку — или используйте API-интеграцию, где авторизация настраивается.
Шаг 4 — Тестовый скрейпинг
Кнопка Тест та же, что у парсера, и результат такой же, включая количество совпавших и удалённых элементов. Первый вызов может оказаться медленнее обычного: нужно поднять свежую браузерную сессию.
Ограничения и подводные камни
- Одновременных скрейпингов немного. Вызовы обслуживает выделенный воркер, который держит лишь несколько браузерных сессий одновременно, а сами процессы браузера регулярно перезапускаются, чтобы не росло потребление памяти. При наплыве запросы встают в очередь, а не масштабируются вширь.
- Ограничение вывода — те же 16 КБ. Держите CSS-селектор узким, чтобы не раздувать контекст ИИ.
- Защита от SSRF включена. Loopback, диапазоны RFC 1918 и link-local отклоняются ещё до запуска браузера.
- Антибот-страницы будут сопротивляться. Cloudflare Turnstile, hCaptcha и им подобные покажут свою проверку вместо ваших данных — обойти это нельзя. Попросите у владельца сайта API.
- Не скрейпите собственные внутренние приложения просто потому, что так проще. Нормальная API-интеграция с bearer-авторизацией быстрее, дешевле, надёжнее и переживает редизайны интерфейса.
- Запросы идут с фиксированного IP —
64.7.198.218. Если ваш WAF проверяет незнакомые адреса, добавьте его в список разрешённых: headless-браузер не умеет проходить такую проверку, равно как и капчу.
Короткая таблица решений
- HTML отдаётся сервером → Webparser.
- JS-приложение, данные появляются после загрузки → Webscraper.
- Закрыто логином, публичных данных нет → API-интеграция.
- Статичные знания для FAQ → статья базы знаний, интеграция не нужна.