Puppeteer
In-depth entryby Google (Chrome DevTools team) · Library · also known as puppeteer-core
Node.js library from the Chrome team for controlling Chrome and Firefox over the DevTools Protocol or WebDriver BiDi, used for scraping, screenshots, PDFs and testing
Overview
Puppeteer is a JavaScript library maintained by Google's Chrome team that provides a high-level API for driving a browser. It launches Chrome (or Firefox through WebDriver BiDi), by default headless, and lets scripts navigate pages, wait for selectors, click and type, evaluate JavaScript in the page, intercept network requests, emulate devices, capture screenshots and generate PDFs. The puppeteer package downloads a matching Chrome build at install time; puppeteer-core ships only the library for use with a browser you supply.
It is released under the Apache 2.0 license and requires a current Node.js release. Common uses are crawling single-page applications that render client-side, automated form submission, visual regression and end-to-end tests, pre-rendering for SEO, and generating PDFs from HTML. Crawlee's PuppeteerCrawler and Apify Actors build on it, and Google's chrome-devtools-mcp server exposes Puppeteer-based browser control to LLM agents.
Because Puppeteer tracks Chrome closely, it is the most direct path to new Chrome capabilities, but Firefox support is newer and there is no WebKit/Safari target. Running many browsers is memory-intensive, and sites with anti-bot defenses detect default headless fingerprints unless additional measures are taken.
Capabilities
- Headless or headed control of Chrome and Firefox
- Navigation, selectors, input and page JavaScript evaluation
- Network interception and request mocking
- Screenshots, PDF generation and device emulation
- Bundled browser download or bring-your-own with puppeteer-core
- Basis for MCP browser tools and crawler frameworks
Typical workflows
- Scrape a JavaScript-rendered site
- Generate PDFs from HTML reports
- Run end-to-end tests in CI
- Expose a browser to an agent via chrome-devtools-mcp
Strengths
- Maintained by the Chrome team with fast access to new features
- Apache 2.0 license
- Large ecosystem and documentation
Limitations
- No WebKit/Safari automation
- Firefox support is newer than Chrome's
- Memory-heavy at scale
- Headless browsers are detectable by anti-bot systems
Prerequisites
- Node.js 22.12 or newer for current releases
Who it is for
- Web developers automating browsers
- Scraping and QA engineers
Alternatives & comparison
Playwright, developed at Microsoft by former Puppeteer contributors, offers the same style of API across Chromium, Firefox and WebKit with Python, Java and .NET bindings in addition to Node, and bundles a richer test runner; Puppeteer stays focused on Chrome and Firefox from JavaScript. Cypress is a testing framework with its own runner and browser integration rather than a general automation library. Crawlee wraps Puppeteer or Playwright with crawling infrastructure such as queues, proxies and storage.
- Crawlee
Open-source crawling and scraping library for Node.js/TypeScript and Python that unifies HTTP and headless-browser crawlers with queues, proxies, fingerprints and storage
Open sourceOpen source - Cypress
End-to-end and component testing framework that runs tests inside the browser with an interactive runner, paired with the commercial Cypress Cloud
MixedOpen source - Playwright
Microsoft's browser automation and end-to-end testing framework driving Chromium, Firefox and WebKit from one API in TypeScript, Python, Java and .NET
Open sourceOpen source - Scrapy
Mature open-source Python framework for writing crawlers (spiders) that fetch pages asynchronously, extract structured items and export them through pipelines
Open sourceOpen source
Sources & verification
Primary sources consulted for this record. Claims are tied to the fields each source supports; the automated link checker re-verifies every URL on a schedule.
- Licensehttps://github.com/puppeteer/puppeteer/blob/main/LICENSEchecked Nov 1, 2026
Supports: license_spdx, source_model
- Official documentationchecked Nov 1, 2026
- Official sitechecked Nov 1, 2026
- Repositorychecked Nov 1, 2026
- Confidence
- High
- Reviewed
- Nov 1, 2026
- Links
- Verified · Nov 2, 2026
Spotted an error?
More in Data collection & crawling
Apify
Apify Technologies s.r.o. · Data collection & crawling
Cloud platform and marketplace for running web-scraping and automation programs (Actors), with storages, proxies, scheduling, an API and an MCP server for agents
Firecrawl
Firecrawl (formerly Mendable) · Data collection & crawling
Web data API that scrapes, crawls, maps and searches websites and returns clean Markdown or structured JSON for LLM pipelines, with an AGPL-licensed self-hostable core
Scrapy
Scrapy developers (maintained with Zyte) · Data collection & crawling
Mature open-source Python framework for writing crawlers (spiders) that fetch pages asynchronously, extract structured items and export them through pipelines
Tavily
Tavily (Alpha AI Technologies Inc.) · Search & web-data APIs
Web search, extraction, crawling and research API designed for LLM agents, returning concise source content with SDKs, framework integrations and a hosted MCP server
Zyte
Zyte Group Ltd · Data collection & crawling
Web-data company behind Scrapy offering Zyte API for ban-resistant fetching, browser rendering and automatic extraction, plus Scrapy Cloud for hosting spiders
Bright Data
Bright Data Ltd. · Data collection & crawling
Web data platform combining residential, datacenter and ISP proxy networks with unblocking, SERP and scraper APIs, remote browsers, ready-made datasets and an MCP server