Puppeteer — библиотека от команды Google Chrome для управления headless Chrome и Chromium из Node.js. В 2026 году она всё ещё жива и активно обновляется, хотя большинство новых проектов по автоматизации браузера стартуют на Playwright. Ниже разберём,…
10+ лет в маркетинге, 300+ клиентских проектов: сайты, реклама, боты. Создатель GoBanana (228K+ пользователей, 11.6 млн ₽ выручки) и VibeCoderz. Делаю AI-продукты сам через Claude Code, Cursor, Windsurf и консультирую тех, кто хочет так же.
Об авторе →Claude Code: новый CLI-агент от Anthropic
Anthropic выпустила Claude Code — терминальный AI-агент для разработчиков. Инструмент работает прямо в командной строке и умеет писать, редактировать и запускать код.
Zcode AI: Полный гид по визуальному интерфейсу для Claude Code и AI-агентов
Узнайте, как использовать Zcode для управления Claude Code, Gemini и Codex в едином GUI. Настройка провайдеров, MCP-серверов и визуальный вайбкодинг.
YouTube-канал с монетизацией из любой точки мира: Пошаговый гайд 2026
Инструкция по созданию YouTube-канала: обход блокировок SMS, настройка расширенных функций через виртуальные номера и правила безопасности для монетизации.
Windsurf Code Maps: Как глубоко понимать архитектуру проекта перед написанием кода
Полный гайд по Windsurf Code Maps, модели Sway 1.5 и Sway Grep. Узнайте, как визуализировать архитектуру кода и ускорить разработку в 13 раз.
Vk Fast Cash Strategy
Аудитория ВКонтакте — это те же люди, что и в Instagram, но 'социальный контракт' площадки другой. Если Instagram — это 'дорогой ресторан' с демонстрацией успеха, то VK — это 'душевная шашлычная'. Здесь не работает глянцевый 'успешный успех
Puppeteer — библиотека от команды Google Chrome для управления headless Chrome и Chromium из Node.js. В 2026 году она всё ещё жива и активно обновляется, хотя большинство новых проектов по автоматизации браузера стартуют на Playwright. Ниже разберём, что такое Puppeteer, как его установить, зачем он используется в AI-агентах вроде Cline и когда его действительно стоит выбрать вместо Playwright.
Puppeteer — библиотека Node.js от команды Chrome для управления браузером через протокол CDP. В 2026 году Playwright обходит его по кроссбраузерности и экосистеме, но Puppeteer держится за счёт скрапинга, PDF/скриншотов и сохранения сессий через disconnect. В статье: установка с нуля, парсинг через evaluate и $$, факт про Cline и итоговая рекомендация.
Puppeteer — это npm-пакет, который запускает Chrome или Chromium и управляет им программно: открывает страницы, кликает, заполняет формы, делает скриншоты и PDF.
Библиотеку выпустила команда Google Chrome ещё до того, как появился Playwright, и долгое время она была стандартом браузерной автоматизации в экосистеме JavaScript. Puppeteer работает через протокол CDP (Chrome DevTools Protocol) — тот же, которым пользуются разработчики при отладке через DevTools.
Для вайбкодера это инструмент из трёх основных сценариев: парсинг данных с сайтов, генерация скриншотов и PDF-документов на лету, автоматизация рутинных действий в браузере. Никакого визуального интерфейса не нужно — браузер запускается в headless-режиме и делает всё в фоне, пока вы пьёте кофе.
Отдельная причина, почему Puppeteer до сих пор актуален для разработчиков на AI: именно он используется под капотом в Cline — популярном AI-агенте для VS Code. Агент открывает страницу собранного приложения, кликает по кнопкам, вводит текст и сверяет, что всё работает как задумано. Подробнее про сам инструмент — в обзоре Cline на портале.

Для нового проекта без сложившихся зависимостей Playwright выигрывает у Puppeteer почти по всем параметрам. Puppeteer остаётся уместным выбором для существующих проектов и узких Chrome-only задач.
Playwright поддерживает Chromium, Firefox и WebKit из коробки, работает на четырёх языках (JavaScript, Python, Java, .NET) и в 2026 году показывает заметно больший рост загрузок, чем Puppeteer. При этом Puppeteer выходит с обновлениями примерно ежемесячно и стабильно отслеживает свежие версии Chrome — списывать его со счетов рано.
Разница особенно заметна на конкретных сценариях. Например, скачивание файла удалённым браузером: в Playwright это несколько строк через событие download, а в Puppeteer готовой абстракции нет — приходится перехватывать ответы через сырой CDP и собирать файл вручную.
| Критерий | Puppeteer | Playwright |
|---|---|---|
| Браузеры | Chromium, Firefox (через WebDriver BiDi, менее зрелая поддержка) | Chromium, Firefox, WebKit из коробки |
| Языки | Только JavaScript/Node.js | JS, Python, Java, .NET |
| Скачивание файлов | Нужен ручной перехват через CDP | Готовое событие download |
| Поддержка AI-агентов | Используется внутри некоторых агентов (например, Cline) | Есть официальный MCP-сервер |
| Частота релизов | Примерно раз в месяц | Активная, широкое сообщество |
| Сохранение сессии | Метод disconnect — браузер живёт дальше на сервере | Аналог через persist state, но браузер закрывается |

Playwright из коробки управляет тремя движками — Chromium, Firefox и WebKit — одним и тем же API. Puppeteer заточен под Chromium и лишь недавно получил экспериментальную поддержку Firefox.
Puppeteer добавил Firefox через новый протокол WebDriver BiDi, но эта поддержка пока менее зрелая, чем нативная реализация Playwright, и WebKit (движок Safari) вообще не поддерживается. Если продукту нужно тестировать поведение в разных браузерах, а не только в Chrome, Playwright закрывает эту задачу без костылей и дополнительных библиотек.
Для чистого Chromium-сценария разница не критична: и Puppeteer, и Playwright одинаково хорошо запускают headless Chrome и управляют им через CDP. Вопрос кроссбраузерности встаёт остро только когда в требованиях явно прописана поддержка Firefox или Safari.

Playwright развивается активнее последние годы, имеет более широкое сообщество и лучшую документацию. Puppeteer десятилетиями был стандартом де-факто и накопил огромную базу готовых примеров и интеграций.
Статистика загрузок npm-пакетов показывает, что разрыв между библиотеками только увеличивается в пользу Playwright — команда Microsoft, которая его развивает, выпускает обновления чаще и активнее работает с сообществом разработчиков. Первоисточники обеих библиотек: pptr.dev и playwright.dev.
При этом старые проекты, статьи и Stack Overflow-ответы про Puppeteer никуда не делись — их накопилось за годы использования достаточно, чтобы быстро найти решение почти любой типовой проблемы. Экосистема AI-агентов тоже смещается в сторону Playwright: у него есть официальный MCP-сервер, и большинство крупных агентных фреймворков используют его по умолчанию. Подробное сравнение по всем сценариям — в статье Puppeteer vs Playwright: technical comparison.
Для разработчика, уже работающего в экосистеме Node.js без потребности в кроссбраузерности, разница в скорости освоения минимальна. Выбор чаще определяется тем, что уже используется в команде или проекте.
API обеих библиотек концептуально похожи: запускаете браузер, открываете страницу, находите элемент через селектор, взаимодействуете с ним. Если вы уже знаете один инструмент, перейти на второй — вопрос пары часов, а не недель.
Максим: «Мог просто засесть до пяти ночи и просто там править одну какую-то функцию, которая не работала. Если бы не терпение — в моменте я уже испотел, и мне хотелось просто всё это закрыть. Но я понимал, что это можно решить и нужно решить, чтобы идти дальше.»
Работа с селекторами в браузерной автоматизации именно такая: элемент не кликается, DOM обновился динамически, нужно найти точный CSS-селектор через DevTools. Это касается и Puppeteer, и Playwright в равной степени.

Puppeteer ставится как обычный npm-пакет: нужны Node.js, инициализированный package.json и пара строк кода для первого запуска браузера.
npm init -y и ставите пакет puppeteer. Ключевой параметр на старте — headless: true или false. Для отладки удобнее держать false: браузер открывается видимым окном, и вы своими глазами видите, что происходит на каждом шаге. Для продакшена и фоновых задач headless-режим включают обратно.
Частая ошибка новичков — действие происходит слишком быстро, и результат клика не успеваешь заметить. Решается добавлением паузы через page.waitForTimeout() после ключевых действий, хотя бы на этапе отладки скрипта.

Для парсинга одного элемента используют evaluate, для массовой выборки — page.$$ в связке с циклом. Разница между методами определяет, получите вы один результат или полный список.
Метод evaluate выполняет код внутри контекста страницы и возвращает первый найденный элемент — этого достаточно, если нужно спарсить, например, заголовок H1 или название канала. Когда данных много, работает связка иначе: page.$$('селектор') собирает все элементы по CSS-селектору в массив, а затем цикл for...of проходит по каждому и вытаскивает нужные данные через evaluate внутри итерации.
Так, например, можно спарсить все заголовки видео на странице YouTube-канала одним проходом. Важный нюанс — асинхронность: Puppeteer построен на промисах, и пропущенный await перед вызовом асинхронной функции — источник половины багов у новичков. На реальных сайтах к этому добавляются капча, пагинация и антипарсинг-системы — но это уже отдельная тема для продвинутого курса.

Puppeteer работает как «руки» AI-агента: агент пишет код приложения, а затем через Puppeteer открывает страницу, кликает по элементам и проверяет, что интерфейс ведёт себя как задумано.
Это удобно именно для агентных сценариев, где нужен быстрый, предсказуемый и не требующий тяжёлой инфраструктуры инструмент управления одним браузером Chromium. Playwright в такой роли тоже используется, особенно через свой MCP-сервер, но выбор конкретной библиотеки внутри агента — деталь реализации, которая от пользователя обычно скрыта.
Если вы вайбкодите продукты через AI-агентов и хотите понимать, что происходит «под капотом» на этапе автотестирования, полезно знать обе библиотеки хотя бы поверхностно. Больше про инструменты для написания кода с AI — в каталоге AI IDE и агентов на VibeCoderz.
Puppeteer выигрывает в узких сценариях: сохранение состояния браузера между запусками, скрапинг, генерация PDF и скриншотов, Chrome-only автоматизация без потребности в кроссбраузерности.
Один из самых практичных примеров — метод disconnect. Он позволяет оставить браузер работать на сервере, сохранив cookies, local storage и состояние страницы, а затем переподключиться к той же сессии позже. В Playwright разработчики годами игнорируют запрос на аналогичную функцию — там браузер закрывается между запусками, и приходится имитировать сохранение состояния через persist state или authenticated profiles.
Это критично для задач вроде долгоживущих скрапинг-сессий с авторизацией или ботов, которым нужно не логиниться заново при каждом запуске. Для таких сценариев Puppeteer остаётся не «устаревшей» библиотекой, а осознанным техническим выбором.

Ни Puppeteer, ни Playwright не решают проблему обнаружения ботов полностью — устаревшие stealth-плагины больше не работают против современных систем защиты.
Актуальные системы детекции анализируют не только JS-свойства браузера, но и протокол соединения, фингерпринт и поведение — патч отдельных JavaScript-полей эту защиту уже не обходит. Дополнительный нюанс касается подключения к удалённым браузерам через Playwright: нативный протокол быстрее и поддерживает Firefox/WebKit, но версия-зависим и может незаметно отключать функции стелса. Подключение через CDP медленнее, зато сохраняет полный набор возможностей инфраструктуры удалённого браузера, если она это поддерживает.
Если задача — обход защиты на серьёзных сайтах, решение чаще ищут не в самой библиотеке автоматизации, а в инфраструктурном слое: резидентных прокси, стелс-маршрутах и специализированных сервисах уровня инфраструктуры.
Для нового проекта без исторических зависимостей Playwright — более current выбор благодаря кроссбраузерности и активному развитию. Puppeteer оправдан для существующих Chrome-only проектов и задач с сохранением сессий.
Короткая карта выбора: пишете тесты с нуля — берите Playwright. Работаете со скрапингом, PDF, скриншотами или нужно сохранять сессию браузера между запусками — Puppeteer справится не хуже, а местами проще. Уже есть кодовая база на одном из инструментов без явных проблем — менять её ради тренда смысла нет.
Оба инструмента активно используются в 2026 году, просто в разных сценариях — называть один из них однозначно мёртвым некорректно. Больше про смежный инструмент — в статье Playwright для вайбкодера.
.youtube-grid-video-renderer.Puppeteer ещё используют в 2026 году?
Да, библиотека выходит с обновлениями примерно раз в месяц и отслеживает новые версии Chrome. Она остаётся актуальной для скрапинга, PDF/скриншотов и Chrome-only задач.
Puppeteer работает только с Chrome?
В основном да. Экспериментальная поддержка Firefox появилась через WebDriver BiDi, но она менее зрелая, чем у Playwright. WebKit (Safari) не поддерживается вообще.
Чем Puppeteer отличается от Playwright для новичка?
API концептуально похожи: запуск браузера, поиск элемента, взаимодействие. Разница в основном не в сложности освоения, а в наборе готовых возможностей из коробки.
Можно ли использовать Puppeteer для парсинга сайтов?
Да, это один из основных сценариев: методы evaluate и page.$$ позволяют вытащить как один элемент, так и весь список элементов по селектору.
Что такое метод disconnect в Puppeteer и зачем он нужен?
Он позволяет оставить браузер работающим на сервере после отключения скрипта, сохранив cookies и состояние страницы, чтобы переподключиться к той же сессии позже.
Puppeteer используется в AI-агентах для написания кода?
Да, например Cline применяет Puppeteer под капотом для тестирования собранных приложений — агент кликает по интерфейсу и проверяет, что всё работает.
Playwright или Puppeteer решают проблему обнаружения ботов?
Ни один инструмент не решает эту задачу полностью. Современные системы анализируют протокол, фингерпринт и поведение, а не только JS-свойства браузера.
Обновлено: август 2026.
Хотите разобраться, какой AI-инструмент подойдёт именно под вашу задачу — от парсинга до полноценного вайбкодинга продукта? Смотрите каталог AI-инструментов на VibeCoderz или запишитесь на консультацию к Максиму.