Skip to main content

A blazing fast, async-first, undetectable webscraping/web automation framework

Project description

Chuscraper 🚀

The Undetectable Web Scraping Framework

chuscraper is a powerful, async-first web automation library designed to bypass the toughest anti-bot protections (Akamai, Cloudflare, Datadome, etc.). It is built on top of the Chrome DevTools Protocol (CDP) and includes advanced stealth techniques out-of-the-box.


🔥 Key Features

  • 🛡️ Undetectable Stealth Mode:

    • Automatically hides navigator.webdriver.
    • Mocks navigator.permissions, navigator.plugins, and navigator.mimeTypes.
    • Pro Features:
      • Canvas & WebGL Noise: Randomizes fingerprinting to avoid tracking.
      • Hardware Spoofing: Simulates high-end PC specs (8 Cores, 8GB RAM).
      • Smart UA Rotation: Rotates modern Desktop User-Agents per session.
  • 🔒 Built-in Proxy Auth:

    • Direct CDP-based proxy authentication (no extensions required).
    • Supports http://user:pass@host:port format seamlessly.
    • Bypasses proxy authentication popups automatically.
  • 🌍 Timezone & Geolocation:

    • Automatically overrides system timezone to match your proxy (e.g., Asia/Kolkata).
  • ⚡ Blazing Fast:

    • Uses specific CDP commands to avoid bloat.
    • Lightweight and optimized for high-concurrency scraping.

📦 Installation

# Clone the repo
git clone https://github.com/ToufiqQureshi/chuscraper.git
cd chuscraper

# Install dependencies (if any specific ones, otherwise uses standard libs)
pip install -e .

🚀 Quick Start

1. Basic Usage (Stealth + Proxy)

import asyncio
import chuscraper

async def main():
    # Start browser with Stealth Mode and Proxy
    browser = await chuscraper.start(
        stealth=True,
        proxy="http://user:pass@proxy.example.com:8080",
        timezone="Asia/Kolkata"  # Match your proxy location
    )

    page = await browser.get("https://whoer.net")
    
    # Verify IP and camouflage
    print(f"Title: {await page.title}")
    
    await asyncio.sleep(10)
    await browser.stop()

if __name__ == "__main__":
    asyncio.run(main())

🛠️ Configuration

Argument Type Description
stealth bool Enable advanced anti-detection (Canvas noise, Hardware mocks, UA rotation).
proxy str Proxy URL in scheme://user:pass@host:port format.
timezone str Override browser timezone (e.g., "Asia/Kolkata").
headless bool Run in headless mode (default: False).

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chuscraper-0.15.5.tar.gz (346.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chuscraper-0.15.5-py3-none-any.whl (337.6 kB view details)

Uploaded Python 3

File details

Details for the file chuscraper-0.15.5.tar.gz.

File metadata

  • Download URL: chuscraper-0.15.5.tar.gz
  • Upload date:
  • Size: 346.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for chuscraper-0.15.5.tar.gz
Algorithm Hash digest
SHA256 5a407984ffcd9e0be324dde5c89216516dea125012dac4263b572d5c6c0f3dc0
MD5 3e2b2783530b267992e3b7a3e6a8c2e1
BLAKE2b-256 368b33499a6815cd725e53b8b9608e8791575fef538a0f1cda9d2537b18f0c5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for chuscraper-0.15.5.tar.gz:

Publisher: publish.yml on ToufiqQureshi/chuscraper

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chuscraper-0.15.5-py3-none-any.whl.

File metadata

  • Download URL: chuscraper-0.15.5-py3-none-any.whl
  • Upload date:
  • Size: 337.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for chuscraper-0.15.5-py3-none-any.whl
Algorithm Hash digest
SHA256 bffeae6a5e0ee374a69a96a6baae0c5f1706290ea3171548c38529378c7e8c72
MD5 55f200c0c1ef79c47ac8d77d659861b2
BLAKE2b-256 051355b6a4fc00ba5845925e6b197144d50d678ee70f0410b5677b3d4c5907e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for chuscraper-0.15.5-py3-none-any.whl:

Publisher: publish.yml on ToufiqQureshi/chuscraper

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page