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, andnavigator.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.
- Automatically hides
-
🔒 Built-in Proxy Auth:
- Direct CDP-based proxy authentication (no extensions required).
- Supports
http://user:pass@host:portformat seamlessly. - Bypasses proxy authentication popups automatically.
-
🌍 Timezone & Geolocation:
- Automatically overrides system timezone to match your proxy (e.g.,
Asia/Kolkata).
- Automatically overrides system timezone to match your proxy (e.g.,
-
⚡ 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chuscraper-0.16.1.tar.gz.
File metadata
- Download URL: chuscraper-0.16.1.tar.gz
- Upload date:
- Size: 372.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d32f6f64a7d18169d41b081fdfe0c51464311e7d81ba570e1e0bb96a105475d2
|
|
| MD5 |
ca5778b8499355f461166f58531f989e
|
|
| BLAKE2b-256 |
798a02f1252a7e1c4ebb40bb49fece4caeebc0a9c67003540f3e9790beee62d3
|
Provenance
The following attestation bundles were made for chuscraper-0.16.1.tar.gz:
Publisher:
publish.yml on ToufiqQureshi/chuscraper
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chuscraper-0.16.1.tar.gz -
Subject digest:
d32f6f64a7d18169d41b081fdfe0c51464311e7d81ba570e1e0bb96a105475d2 - Sigstore transparency entry: 952499020
- Sigstore integration time:
-
Permalink:
ToufiqQureshi/chuscraper@cddf171a8bf5a08de0254072bc16617fd15b9c18 -
Branch / Tag:
refs/tags/v0.16.1 - Owner: https://github.com/ToufiqQureshi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cddf171a8bf5a08de0254072bc16617fd15b9c18 -
Trigger Event:
push
-
Statement type:
File details
Details for the file chuscraper-0.16.1-py3-none-any.whl.
File metadata
- Download URL: chuscraper-0.16.1-py3-none-any.whl
- Upload date:
- Size: 359.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
417ff2267ddc7fd6cbeb633d882ed8fad2438c276d84b8c3ed8b21c93b99f9f8
|
|
| MD5 |
9dd34accb9774d7a672364525dbf7d77
|
|
| BLAKE2b-256 |
9b7809346cbf8f7f589e08c63ad49078c74bd03161cc65e63788111fe33b38b0
|
Provenance
The following attestation bundles were made for chuscraper-0.16.1-py3-none-any.whl:
Publisher:
publish.yml on ToufiqQureshi/chuscraper
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chuscraper-0.16.1-py3-none-any.whl -
Subject digest:
417ff2267ddc7fd6cbeb633d882ed8fad2438c276d84b8c3ed8b21c93b99f9f8 - Sigstore transparency entry: 952499052
- Sigstore integration time:
-
Permalink:
ToufiqQureshi/chuscraper@cddf171a8bf5a08de0254072bc16617fd15b9c18 -
Branch / Tag:
refs/tags/v0.16.1 - Owner: https://github.com/ToufiqQureshi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cddf171a8bf5a08de0254072bc16617fd15b9c18 -
Trigger Event:
push
-
Statement type: