Skip to main content

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

Project description

Chuscraper Logo

🕷️ Chuscraper

Stealth-focused web scraping & automation framework powered by CDP
You Only Scrape Once — data extraction made smarter, faster, and more resilient.


🚀 What is Chuscraper?

Chuscraper is a Python web scraping & automation library that uses CDP (Chrome DevTools Protocol) to extract structured data, interact with pages, and automate workflows — with a heavy focus on Anti-Detection and Stealth.

It converts standard Chromium instances into undetectable agents that can bypass bot verification systems.


🌟 Features

🕵️‍♂️ Stealth & Anti-Detection

  • Hides navigator.webdriver, user agent rotation
  • Canvas/WebGL noise + hardware spoofing
  • Timezone & geolocation spoofing

⚡ Async + Fast

Built on async CDP, low overhead, no heavy browser bundles.

🔄 Flexible Outputs

Supports JSON, CSV, Markdown, Excel, Pydantic, and more.


📦 Installation

pip install chuscraper

[!TIP] Use within a virtual environment to avoid conflicts.



💻 Quick Start (The "Easy" Way)

Chuscraper is designed for Zero Boilerplate. You don't need complex configuration objects just to start a stealthy session.

import asyncio
import chuscraper as zd

async def main():
    # DIRECT START: Specify stealth, proxy, or headless directly in start()
    async with await zd.start(headless=False, stealth=True) as browser:
      
        # 🟢 BROWSER-LEVEL SHORTCUT
        await browser.goto("https://www.makemytrip.com/")
      
        # 🟢 INTUITIVE ALIASES (goto, title, select_text)
        page = browser.main_tab
        await page.goto("https://example.com")
      
        title = await page.title()
        header = await page.select_text("h1")
      
        print(f"Bhai, Title hai: {title}")
        print(f"Header: {header}")

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

[!NOTE] chuscraper automatically handles Chrome process cleanup and Local Proxy lifecycle.


⚙️ Configuration Switches (Parameters)

Chuscraper gives you full control via zd.start(). Here are the powerful switches you can use:

🛠️ Core Switches

Switch Description Default
headless Run without a visible window (True/False) False
stealth Master Switch for Anti-Detection features False
user_data_dir Path to save/load browser profile (keep logins/cookies) Temp
proxy Proxy URL (e.g. http://user:pass@host:port) None

🚀 Advanced Switches

Switch Description
browser_executable_path Custom path to Chrome/Brave binary
user_agent Spoof specific User-Agent string
sandbox Set False for Linux/Docker environments
disable_webgl Disable graphics for performance (True)
disable_webrtc Prevent IP leaks via WebRTC (True recommended for proxies)
lang Browser language (e.g., en-US, hi-IN)

🕵️‍♂️ Granular Stealth Options

When stealth=True, you can fine-tune specific patches by passing a stealth_options dict:

await zd.start(stealth=True, stealth_options={
    "patch_webdriver": True,  # Hide WebDriver
    "patch_webgl": True,      # Spoof Graphics Card
    "patch_canvas": True,     # Add Canvas Noise
    "patch_audio": False      # Disable Audio Fingerprinting noise
})

🛡️ Stealth & Anti-Detection Proof

We don't just claim to be stealthy; we prove it. Below are the results from top anti-bot detection suites, all passed with 100% "Human" status.

👉 View Full Visual Proofs & Screenshots Here

Detection Suite Result Status
SannySoft No WebDriver detected ✅ Pass
BrowserScan 100% Trust Score ✅ Pass
PixelScan Consistent Fingerprint ✅ Pass
IPHey Software Clean (Green) ✅ Pass
CreepJS 0% Stealth / 0% Headless ✅ Pass
Fingerprint.com No Bot Detected ✅ Pass

🌍 Real-World Protection Bypass

We tested chuscraper against live websites protected by major security providers:

Provider Target Result
Cloudflare Turnstile Demo ✅ Solved Automatically
DataDome Antoine Vastel Research ✅ Accessed
Akamai Nike Product Page ✅ Bypassed

📖 Documentation

Full technical guides are available in the docs/ folder:

Translations (Chinese, Japanese, etc.) coming soon.

💖 Support & Sponsorship

chuscraper is an open-source project maintained by [Toufiq Qureshi]. If the library has helped you or your business, please consider supporting its development:

  • GitHub Sponsors: Sponsor me on GitHub
  • Corporate Sponsorship: If you are a Proxy Provider or Data Company, we offer featured placement in our documentation. Contact us for partnership opportunities.
  • Custom Scraping Solutions: Need a private, high-performance scraper? We offer professional consulting.

🛠️ Contributing

Want to contribute? Open an issue or send a pull request — all levels welcome! Please follow the CONTRIBUTING.md guidelines.


📜 License

Chuscraper is licensed under the AGPL-3.0 License. This ensures that any software using Chuscraper must also be open-source, protecting the community and your freedom.

Made with ❤️ by [Toufiq Qureshi]

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.9.3.tar.gz (486.9 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.9.3-py3-none-any.whl (260.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: chuscraper-0.9.3.tar.gz
  • Upload date:
  • Size: 486.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for chuscraper-0.9.3.tar.gz
Algorithm Hash digest
SHA256 2a5ff8552c9c5c0dc5655cd2bd8f23c511ee5627503bec5118ae0db7e6e1b577
MD5 a7b6cdfec0366e66f4f363c5a455b3b1
BLAKE2b-256 1f0655d78984d2e3f4d4a1c6f0aed3d9fa9c0a952d5f6704a8a58da9ed3eac8b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: chuscraper-0.9.3-py3-none-any.whl
  • Upload date:
  • Size: 260.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for chuscraper-0.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e3e62a6775671485ac68e3f3d0d0b6a3362743003da5c540755b381e5816fed3
MD5 2f7e51173ff33ec076b36d0d989cb5d2
BLAKE2b-256 75a1f37654c8989154fb9af2414e19ebfaf9e3c397826d99d16018c69983643b

See more details on using hashes here.

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