Веб-автоматизация в n8n: сравнение HTML-Node, Puppeteer и Playwright

n8n считывает веб-страницы с помощью HTML-Node или использует Playwright/Puppeteer через собственный сервис браузера. Обзор различий.

Для простого веб-скрапинга без рендеринга JavaScript в n8n вполне достаточно встроенного HTML-Node с CSS-селекторами. Для порталов, которые подгружают содержимое только через JavaScript, дополнительно нужен настоящий браузер в фоновом режиме, которого у n8n нет. На практике пользователи n8n решают эту задачу обычно с помощью самостоятельно размещённого контейнера Browserless или Playwright, к которому обращаются через HTTP-Request-Node, вместо того чтобы запускать Puppeteer или Playwright напрямую в Code-Node. Актуально на август 2026 года.

Что умеет встроенный HTML-Node?

Согласно официальной документации, HTML-Node решает три задачи: извлекает HTML-содержимое из источника по CSS-селектору, создаёт HTML-шаблон из данных workflow или преобразует содержимое в HTML-таблицу. При извлечении вы выбираете нужные элементы с помощью CSS-селектора и указываете, что возвращать: значения атрибутов, HTML-содержимое, чистый текст или значения формы. Опция «Return Array» определяет, выводятся ли несколько найденных совпадений в виде массива или объединяются в одну строку, дополнительно доступны «Trim Values» и «Clean Up Text» для очистки извлечённых значений.

Почему HTML-Node не подходит для многих современных веб-сайтов?

HTML-Node обрабатывает исключительно HTML-источники, которые вы передаёте ему как свойство JSON или как бинарный файл, сам он не содержит браузера и не выполняет JavaScript. Для классической страницы с серверным рендерингом этого достаточно, поскольку HTTP-Request-Node загружает готовый HTML-код через REST-запрос, и HTML-Node может сразу его обработать. Если же страница собирает своё содержимое только в браузере с помощью JavaScript, обычный HTTP-запрос возвращает лишь пустой каркас, и HTML-Node нечего обрабатывать.

Как пользователи n8n на практике подключают Playwright или Puppeteer?

В сообществе n8n сложился повторяющийся паттерн: вместо того чтобы запускать Playwright напрямую в Code-Node, в фоновом режиме работает самостоятельно размещённый контейнер Browserless с Playwright, к которому n8n обращается через HTTP-Request-Node. Подробно задокументированный пример на форуме n8n использует для этого такие эндпоинты, как «/content», «/screenshot» и «/pdf», защищённые с помощью учётных данных Header-Auth с собственным токеном. Такой подход чётко разделяет автоматизацию браузера, требующую много оперативной памяти, и сам workflow n8n, который теперь только обрабатывает HTTP-ответы.

Существует ли готовая Playwright-Node для n8n?

Официальной готовой Playwright-Node n8n не предлагает. В теме на форуме n8n о локальном использовании Playwright без платного сервиса видно, что в этом случае пользователи обычно справляются сами: либо с помощью собственной Custom-Node на основе Playwright, либо через HTTP-маршрут Browserless. Тем, кому регулярно нужны скриншоты, PDF или содержимое с насыщенных JavaScript страниц, вряд ли удастся обойтись без самостоятельно эксплуатируемого сервиса браузера, независимо от того, реализован ли он как отдельная node или как HTTP-запрос.

Часто задаваемые вопросы о веб-скрапинге в n8n

Может ли HTML-Node напрямую считывать страницы с большим количеством JavaScript?

Нет. HTML-Node обрабатывает только HTML-источник, который получает в виде JSON- или бинарных данных, сам он не выполняет JavaScript. Для страниц с динамически подгружаемым содержимым вам предварительно нужен настоящий браузер, например через самостоятельно размещённый сервис Browserless или Playwright.

Обязательно ли нужен платный сервис для веб-скрапинга в n8n?

Нет. Задокументированные в сообществе решения основаны на самостоятельно размещённом контейнере Browserless или Playwright, который вы запускаете через Docker и к которому обращаетесь через HTTP-Request-Node. Текущие расходы тогда ограничиваются собственной серверной инфраструктурой, например в рамках уже существующей установки n8n.

Что делает опция «Return Array» в HTML-Node?

Она определяет, возвращаются ли несколько совпадений, найденных по CSS-селектору, в виде массива с несколькими записями или объединяются в одну строку. Для списков, из которых вы позже хотите обрабатывать отдельные элементы, вариант с массивом обычно оказывается более практичным выбором.

На что следует обращать внимание при скрапинге на основе селекторов?

Скрапинг на основе CSS-селекторов на практике регулярно ломается, как только целевая страница меняет свою разметку или названия классов. Отчёты сообщества о workflow с Puppeteer и Playwright неоднократно подтверждают этот паттерн, поэтому продуктивный scraping-workflow должен предусматривать определённое обслуживание, а не работать без изменений постоянно после однократной настройки.

Симон Гловик, основатель NordFlux
Об авторе

Основатель NordFlux. Семь лет опыта, от веба и SEO до автоматизации в масштабах концерна, сегодня прагматично для среднего бизнеса и с немецким суверенитетом данных.

Сертификаты

  • Сертифицирован Microsoft — PL-900 и AZ-900
  • Сертифицирован UiPath — Automation Developer Associate
Все статьи
Бесплатный первичный анализ

Конкретные вопросы по автоматизации или КИ?

В рамках бесплатного первичного анализа мы напрямую обсудим Ваш случай. Без обязательств.

n8n веб-скрапинг: HTML-Node против Playwright