Skip to content

puppeteer-extravscamoufox

MIT 268 2 7,293
2.0 million (month) May 15 2018 3.3.6(2023-03-01 12:19:02 ago)
7,089 3 244 MPL-2.0
Mar 01 2024 1.0 million (month) 0.4.11(2025-01-29 09:33:18 ago)

Puppeteer-extra is a modular plugin framework that wraps Puppeteer (and Playwright) to add extra functionality through a plugin system. It acts as a drop-in replacement for Puppeteer while enabling powerful extensions for stealth, captcha solving, ad blocking, and more.

The most popular plugins include:

  • puppeteer-extra-plugin-stealth Applies various evasion techniques to make the automated browser harder to detect. Patches common detection vectors like navigator.webdriver, Chrome.runtime, WebGL renderer strings, and more. This is the most widely used Puppeteer stealth solution.
  • puppeteer-extra-plugin-recaptcha Automatically detects and solves reCAPTCHA and hCaptcha challenges using third-party solving services (2captcha, anti-captcha).
  • puppeteer-extra-plugin-adblocker Blocks ads and trackers to speed up page loading and reduce bandwidth usage during scraping.
  • puppeteer-extra-plugin-anonymize-ua Randomizes the User-Agent string to avoid fingerprinting.

Key features of the framework:

  • Drop-in replacement Use puppeteer-extra instead of puppeteer in your imports - existing code works without changes.
  • Plugin composition Multiple plugins can be stacked and they work together without conflicts.
  • Playwright support The same plugin system works with Playwright via playwright-extra.
  • Community plugins Active community creating and maintaining plugins for various use cases.

Puppeteer-extra is the go-to solution for adding stealth capabilities to Puppeteer-based scrapers without rewriting existing code.

Camoufox is an anti-detect browser built on Firefox, designed specifically for web scraping and browser automation while evading bot detection systems. Unlike Chrome-based anti-detect solutions, Camoufox uses a patched version of Firefox with over 100 modifications to prevent fingerprinting and detection.

Key features include:

  • Firefox-based stealth Uses Firefox instead of Chrome, which has different fingerprinting characteristics and is less commonly targeted by anti-bot systems. The browser is patched at the C++ level to prevent JavaScript-based fingerprint leaks.
  • Realistic fingerprints Generates and applies realistic browser fingerprints including screen resolution, WebGL renderer, fonts, and other browser properties that match real user configurations.
  • Playwright integration Works seamlessly with Playwright for Python, providing the familiar Playwright API while running through the stealth-patched Firefox instance.
  • Proxy support Built-in proxy support with authentication, including residential proxy rotation.
  • Geolocation spoofing Can spoof browser geolocation to match proxy IP location for consistent fingerprints.
  • Human-like behavior Includes utilities for adding human-like mouse movements and typing patterns.

Camoufox is particularly effective against sophisticated anti-bot systems that detect Chrome-based automation tools. By using Firefox as the base, it avoids many Chrome-specific detection vectors while the deep browser patches prevent general fingerprinting techniques.

Highlights


plugin-systemextendiblecommunity-toolsstealth
anti-detectstealth

Example Use


```javascript const puppeteer = require('puppeteer-extra'); // Add stealth plugin to avoid bot detection const StealthPlugin = require('puppeteer-extra-plugin-stealth'); puppeteer.use(StealthPlugin()); // Add recaptcha solving plugin const RecaptchaPlugin = require('puppeteer-extra-plugin-recaptcha'); puppeteer.use(RecaptchaPlugin({ provider: { id: '2captcha', token: 'YOUR_API_KEY' }, })); (async () => { // Launch browser - stealth is applied automatically const browser = await puppeteer.launch({ headless: true }); const page = await browser.newPage(); await page.goto('https://example.com/login'); // If there's a captcha, it will be solved automatically const { solved } = await page.solveRecaptchas(); console.log(`Solved ${solved.length} captchas`); // Regular Puppeteer API works as normal await page.type('#username', 'user@example.com'); await page.type('#password', 'password'); await page.click('#login-button'); await page.waitForNavigation(); console.log('Logged in:', page.url()); await browser.close(); })(); ```
```python from camoufox.sync_api import Camoufox # Launch stealth Firefox browser with Camoufox(headless=True) as browser: page = browser.new_page() # Navigate - the browser appears as a real Firefox user page.goto("https://example.com") # Use standard Playwright API for interaction page.fill("input[name='search']", "web scraping") page.click("button[type='submit']") # Extract data results = page.query_selector_all(".result") for result in results: title = result.query_selector("h3").text_content() print(title) # With proxy and custom fingerprint from camoufox.sync_api import Camoufox with Camoufox( headless=True, proxy={"server": "http://proxy.example.com:8080"}, geoip=True, # auto-match geolocation to proxy IP ) as browser: page = browser.new_page() page.goto("https://example.com") print(page.content()) ```

Alternatives / Similar


Was this page helpful?