awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
pyppeteer avatar

pyppeteer/pyppeteer

0
View on GitHub↗
3,948 stars·347 forks·Python·29 views

Pyppeteer

Pyppeteer is a Python library for controlling Chromium-based browsers using the Chrome DevTools Protocol. It functions as a headless browser automation tool, allowing for the programmatic navigation of web pages and the extraction of data from dynamic websites.

The project provides low-level browser control through direct communication with the Chrome DevTools Protocol, enabling the interception and modification of network traffic. It differentiates itself by offering specialized performance profiling capabilities, including the measurement of JavaScript and CSS code coverage and the capture of performance traces.

Its broader capabilities include simulating human user interactions via keyboard and mouse inputs, managing isolated browser contexts, and emulating various device environments. It also supports visual content capture through screenshots and PDF generation, as well as the injection of custom scripts to manipulate the DOM.

Features

  • Headless Browser Controllers - Functions as a controller for managing the lifecycle and execution of headless Chromium browser instances.
  • DevTools Protocol Clients - Acts as a client that communicates via the Chrome DevTools Protocol to control page behavior and network traffic.
  • Browser-Context Script Executions - Enables execution of custom JavaScript functions and expressions within the live browser context via CDP.
  • Headless Browser Automation - Provides a programmatic interface for controlling Chromium engines to perform navigation and data extraction without a UI.
  • CDP Message Communication - Provides low-level browser control by communicating directly with the Chrome DevTools Protocol via JSON messages.
  • Browser Process Lifecycle Management - Manages the Chromium process lifecycle, including spawning the browser with configurable flags and execution paths.
  • User Interaction Simulation - Replicates human input and interaction patterns to mimic real-world user behavior during automation.
  • Mouse Action Simulations - Performs programmatic mouse movements, clicks, and complex sequences like hovering on specific DOM elements.
  • DOM Manipulators - Provides utilities to programmatically focus, hover, and manipulate elements within the browser DOM.
  • Element Locators - Identifies and selects specific HTML elements using CSS selectors or XPath expressions.
  • JavaScript Injections - Allows the execution of custom JavaScript within the browser context to manipulate the DOM and extract data.
  • DOM Selectors - Supports the use of CSS selectors and XPath to locate and target specific HTML elements.
  • Dynamic Web Scrapers - Executes client-side scripts to render and extract content from modern, dynamic web applications.
  • Network Request Interception - Intercepts and modifies HTTP requests and responses to abort or override URLs and headers.
  • Keyboard Input Simulations - Simulates real user typing by sending keystrokes and modifier combinations to focused web elements.
  • Web Scraping and Extraction - Extracts structured data from dynamic websites using JavaScript execution and DOM querying.
  • Web Page Screenshot and PDF Tools - Generates screenshots and PDF documents from rendered web content for visual capture.
  • Websocket Connection Managers - Connects to remote browser instances via persistent WebSocket connections for lifecycle management.
  • Network Request Interceptors - Monitors, filters, and modifies HTTP requests and responses during active browser sessions.
  • Non-Blocking Event Loops - Uses a non-blocking event loop to manage concurrent communication between Python and the browser process.
  • Browser Tracing - Provides capabilities to capture low-level browser activity and execution traces for performance analysis.
  • Browser Performance Profiling - Captures performance traces and tracks JavaScript/CSS execution to identify bottlenecks.
  • Code Coverage Analysis - Measures the extent to which JavaScript and CSS source code is executed by the page during a session.
  • Browser Environment Emulators - Emulates various device environments by configuring viewport dimensions and media features.
  • Browser Context Isolation - Creates isolated browser environments with separate storage and cookies for independent sessions.
  • Page Condition Synchronization - Pauses execution until specific page conditions, such as element appearance or network responses, are met.
  • Performance Profilers - Measures JavaScript and CSS code coverage and records performance traces to analyze application bottlenecks.
  • Browser Performance Testing - Measures real-world user interaction speeds and identifies performance bottlenecks in JavaScript and CSS.
  • Web Testing Frameworks - Provides the automation mechanisms necessary to verify web application functionality across different environments.
  • Isolated Browser Contexts - Provides isolated browser contexts to ensure separate storage and session partitions.
  • Tab Managers - Manages the opening, switching, and navigation of multiple browser tabs and pages.
  • Runtime Script and CSS Injection - Allows dynamic injection of JavaScript and CSS into pages at runtime to modify behavior and appearance.
  • Remote Browser Connections - Enables connection to existing remote browser instances via WebSocket endpoints.
  • Automation Libraries - Python port of the popular Node.js automation library.
  • Chromium Drivers - Python port of the official Chrome automation library.

Star history

Star history chart for pyppeteer/pyppeteerStar history chart for pyppeteer/pyppeteer

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does pyppeteer/pyppeteer do?

Pyppeteer is a Python library for controlling Chromium-based browsers using the Chrome DevTools Protocol. It functions as a headless browser automation tool, allowing for the programmatic navigation of web pages and the extraction of data from dynamic websites.

What are the main features of pyppeteer/pyppeteer?

The main features of pyppeteer/pyppeteer are: Headless Browser Controllers, DevTools Protocol Clients, Browser-Context Script Executions, Headless Browser Automation, CDP Message Communication, Browser Process Lifecycle Management, User Interaction Simulation, Mouse Action Simulations.

Which projects share features with pyppeteer/pyppeteer?

Projects with overlapping indexed features include: autoscrape-labs/pydoll — pydoll is a Chrome DevTools Protocol automation library and headless browser controller used for web data extraction… microsoft/playwright — Playwright is a comprehensive browser automation framework designed for end-to-end testing and web workflow… microsoft/playwright-python — Playwright for Python is a browser automation framework designed for end-to-end testing, web scraping, and user… jnicklas/capybara — Capybara is a browser automation testing library and framework for web application acceptance testing. It provides a… teamcapybara/capybara — Capybara is a browser automation library and web application acceptance test framework used to simulate user behavior… hardkoded/puppeteer-sharp — Puppeteer Sharp is a .NET wrapper and automation library used to programmatically drive headless Chrome and Chromium…

Projects sharing features with Pyppeteer

These projects share indexed features with Pyppeteer. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • autoscrape-labs/pydollautoscrape-labs avatar

    autoscrape-labs/pydoll

    6,919View on GitHub↗

    pydoll is a Chrome DevTools Protocol automation library and headless browser controller used for web data extraction and parallel browser automation. It controls Chromium-based browsers via direct WebSocket connections, allowing it to manage isolated browser contexts and tabs while bypassing the overhead and detection associated with WebDriver. The project features an anti-bot evasion framework that mimics natural human behavior, including mouse movements generated via Bezier curves and variable typing patterns. It provides specialized stealth capabilities to bypass behavioral analysis and au

    Pythonanti-detectionautomationbrowser-automation
    View on GitHub↗6,919
  • microsoft/playwrightmicrosoft avatar

    microsoft/playwright

    91,074View on GitHub↗

    Playwright is a comprehensive browser automation framework designed for end-to-end testing and web workflow automation. It provides a unified API to drive web applications across multiple browser engines, enabling developers to simulate complex user interactions, perform web scraping, and validate application behavior in consistent, isolated environments. The framework distinguishes itself through a web-first testing paradigm that prioritizes stability and resilience. By utilizing an auto-waiting actionability engine and accessibility-tree-based locators, it eliminates common sources of test

    TypeScriptautomationchromechromium
    View on GitHub↗91,074
  • microsoft/playwright-pythonmicrosoft avatar

    microsoft/playwright-python

    14,279View on GitHub↗

    Playwright for Python is a browser automation framework designed for end-to-end testing, web scraping, and user interaction simulation. It functions as a headless browser controller that enables programmatic navigation, data extraction, and the execution of complex workflows across multiple rendering engines. The framework distinguishes itself through an actionability-aware interaction engine that automatically verifies element readiness before performing actions, significantly reducing test flakiness. It utilizes isolated browser contexts to maintain separate storage and cookies for parallel

    Pythonchromiumfirefoxplaywright
    View on GitHub↗14,279
  • jnicklas/capybarajnicklas avatar

    jnicklas/capybara

    10,166View on GitHub↗

    Capybara is a browser automation testing library and framework for web application acceptance testing. It provides a high-level API for automating browser navigation and element interaction to validate user-facing features. The project features a cross-browser driver interface that allows switching between headless and full browser environments without modifying the underlying test code. This abstraction enables the simulation of complex web workflows across different browser drivers and environments. The suite covers user interaction simulation, including form filling, click events, and bro

    Ruby
    View on GitHub↗10,166
Compare all 30 related projects→