Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cloudscraper — Ein Python-Modul zur Umgehung der Anti-Bot-Seite von Cloudflare. | Kitploit
Tools/GitHubGitHub/venomous/cloudscraper
Impersonations-ToolsWAF-UmgehungCrawlerAnti-BotFingerabdruck-SpoofingCAPTCHA-Umgehung
GitHubvenomous/cloudscraper

cloudscraper

Ein Python-Modul zur Umgehung der Anti-Bot-Seite von Cloudflare.

Repository anzeigen
6.7k638vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

cloudscraper - Erweiterte Edition

PyPI version License: MIT image

Verbessert von Zied Boughdir

Neueste Version: v3.0.0 🚀 - Großes Upgrade

🆕 Wichtige neue Funktionen in v3.0.0

  • 🛡️ Automatische 403-Fehlerbehebung - Intelligente Sitzungsaktualisierung, wenn nach längerer Nutzung 403-Fehler auftreten
  • 📊 Sitzungszustandsüberwachung - Proaktives Sitzungsmanagement mit konfigurierbaren Aktualisierungsintervallen
  • 🔄 Intelligente Sitzungsaktualisierung - Automatisches Löschen von Cookies und Fingerprint-Rotation
  • 🎯 Erweiterter Stealth-Modus - Verbesserte Anti-Erkennung mit Simulation menschlichen Verhaltens
  • 🔧 Moderne Python-Unterstützung - Python 3.8+ mit aktuellsten Abhängigkeitsversionen
  • 📦 Moderne Paketierung - Verwendet pyproject.toml und moderne Build-Tools
  • 🧪 Umfassende Tests - Neue Testsuite mit pytest und CI/CD-Integration
  • 🚀 Leistungsverbesserungen - Optimierter Code mit besserer Fehlerbehandlung

🔧 Nicht abwärtskompatible Änderungen

  • Mindestversion von Python: Erfordert jetzt Python 3.8+
  • Aktualisierte Abhängigkeiten: Alle Abhängigkeiten auf die neuesten stabilen Versionen aktualisiert
  • Legacy-Code entfernt: Python-2-Kompatibilitätscode bereinigt

✅ Bisherige Funktionen (weiterhin verfügbar)

  • Executable-Kompatibilitätsfix - Vollständige Lösung für PyInstaller, cx_Freeze und auto-py-to-exe-Konvertierung
  • Unterstützung für Cloudflare v3 JavaScript-VM-Challenges - Bewältigt den neuesten und ausgefeiltesten Cloudflare-Schutz
  • Unterstützung für Cloudflare-Turnstile-Challenges - Unterstützung für Cloudflares CAPTCHA-Alternative
  • Erweiterte JavaScript-Interpreter-Unterstützung - Verbesserte VM-basierte Challenge-Ausführung
  • Vollständige Schutzabdeckung - Unterstützt jetzt alle Cloudflare-Challenge-Typen (v1, v2, v3, Turnstile)

🔧 Verbesserungen

  • 🎯 Behobene User-Agent-Probleme in Executables - Automatisches Fallback-System für fehlende browsers.json
  • 🛡️ PyInstaller-Erkennung - Erkennt und behandelt automatisch Executable-Umgebungen
  • 📦 Umfassendes Fallback-System - 70+ integrierte User-Agents für alle Plattformen
  • Erweiterte Proxy-Rotation und Stealth-Modus-Funktionen
  • Bessere Erkennung und Behandlung moderner Cloudflare-Schutzmechanismen
  • Verbesserte Kompatibilität mit allen JavaScript-Interpretern (js2py, nodejs, native)
  • Aktualisierte Dokumentation mit umfassenden Beispielen

📊 Testergebnisse

Alle Funktionen wurden für die Kernfunktionalität mit 100% Erfolgsquote getestet:

  • ✅ Grundlegende Anfragen: 100% Erfolgsquote
  • ✅ User-Agent-Verarbeitung: 100% Erfolgsquote
  • ✅ Cloudflare v1-Challenges: 100% Erfolgsquote
  • ✅ Cloudflare v2-Challenges: 100% Erfolgsquote
  • ✅ Cloudflare v3-Challenges: 100% Erfolgsquote
  • ✅ Stealth-Modus: 100% Erfolgsquote

Ein Python-Modul, um Cloudflares Anti-Bot-Seite (auch bekannt als „I'm Under Attack Mode" oder IUAM) zu umgehen, implementiert mit Requests. Diese erweiterte Version unterstützt Cloudflare v2-Challenges, Proxy-Rotation, Stealth-Modus und mehr. Cloudflare ändert ihre Techniken regelmäßig, daher werde ich dieses Repository häufig aktualisieren.

Dies kann nützlich sein, wenn Sie eine mit Cloudflare geschützte Website scrapen oder crawlen möchten. Cloudflares Anti-Bot-Seite prüft derzeit lediglich, ob der Client Javascript unterstützt, allerdings könnten in Zukunft weitere Techniken hinzugefügt werden.

Da Cloudflare seine Schutzseite ständig ändert und verstärkt, benötigt cloudscraper eine JavaScript-Engine bzw. einen -Interpreter, um JavaScript-Challenges zu lösen. Dadurch kann das Skript problemlos einen normalen Webbrowser imitieren, ohne Cloudflares Javascript explizit zu deobfuscieren und zu parsen.

Zur Referenz: Dies ist die Standardmeldung, die Cloudflare für solche Seiten verwendet:``` Checking your browser before accessing website.com.

This process is automatic. Your browser will redirect to your requested content shortly.

Please allow up to 5 seconds...

root@kitploit:~
Jedes Skript, das cloudscraper verwendet, wartet beim ersten Besuch einer Website mit aktiviertem Cloudflare-Anti-Bot-Schutz etwa 5 Sekunden, obwohl nach der ersten Anfrage keine Verzögerung mehr auftritt.

# Installation

Führen Sie einfach `pip install cloudscraper` aus. Das PyPI-Paket finden Sie unter https://pypi.org/project/cloudscraper/```bash
pip install cloudscraper

Alternativ können Sie dieses Repository klonen und python setup.py install ausführen.

Migration von cloudscraper

Wenn Sie zuvor das ursprüngliche cloudscraper-Paket verwendet haben, können Sie jetzt diese erweiterte Version direkt verwenden:```python

Enhanced import

import cloudscraper # Enhanced version

root@kitploit:~
The API remains compatible, so you only need to change the import statements in your code. All function calls and parameters work the same way.

### Struktur der Codebasis

Die Codebasis wurde gestrafft, um die Wartbarkeit zu verbessern und Verwirrung zu reduzieren:

- **Einzelnes Modul**: Der gesamte Code befindet sich jetzt im Modul `cloudscraper`
- **Redundanz entfernt**: Die redundanten Verzeichnisse wurden entfernt
- **Aktualisierte Tests**: Alle Testdateien wurden aktualisiert, um das Modul `cloudscraper` zu verwenden

Dadurch wird die Codebasis übersichtlicher und einfacher zu warten, während die Abwärtskompatibilität mit vorhandenem Code erhalten bleibt, der die ursprüngliche API verwendet.

## Wichtige Funktionen in cloudscraper

| Funktion | Beschreibung | Status |
|---------|-------------|--------|
| **🆕 Executable-Kompatibilität** | Vollständige Lösung für PyInstaller-, cx_Freeze-, auto-py-to-exe-Konvertierung | ✅ **BEHOBEN** |
| **🆕 v3-JavaScript-VM-Herausforderungen** | Unterstützung für Cloudflares neueste JavaScript-VM-basierte Herausforderungen | ✅ **NEU** |
| **🆕 Turnstile-Unterstützung** | Unterstützung für Cloudflares neuen Turnstile-CAPTCHA-Ersatz | ✅ **NEU** |
| **Moderne Challenge-Unterstützung** | Erweiterte Unterstützung für v1-, v2-, v3- und Turnstile-Cloudflare-Challenges | ✅ Vollständig |
| **Proxy-Rotation** | Integrierte intelligente Proxy-Rotation mit mehreren Strategien | ✅ Erweitert |
| **Stealth-Modus** | Simulation menschenähnlichen Verhaltens, um Erkennung zu vermeiden | ✅ Erweitert |
| **Browser-Emulation** | Erweitertes Browser-Fingerprinting für Chrome und Firefox | ✅ Stabil |
| **JavaScript-Handhabung** | Besserer JS-Interpreter (js2py als Standard) zur Lösung von Challenges | ✅ Erweitert |
| **Captcha-Löser** | Unterstützung für mehrere CAPTCHA-Lösungsdienste | ✅ Stabil |

# Abhängigkeiten

- **Python 3.8+** (Unterstützung für Python 3.6 und 3.7 eingestellt)
- **[Requests](https://github.com/psf/requests)** >= 2.31.0
- **[requests_toolbelt](https://pypi.org/project/requests-toolbelt/)** >= 1.0.0
- **[pyparsing](https://pypi.org/project/pyparsing/)** >= 3.1.0
- **[pyOpenSSL](https://pypi.org/project/pyOpenSSL/)** >= 24.0.0
- **[pycryptodome](https://pypi.org/project/pycryptodome/)** >= 3.20.0
- **[websocket-client](https://pypi.org/project/websocket-client/)** >= 1.7.0
- **[js2py](https://pypi.org/project/Js2Py/)** >= 0.74
- **[brotli](https://pypi.org/project/Brotli/)** >= 1.1.0
- **[certifi](https://pypi.org/project/certifi/)** >= 2024.2.2

`python setup.py install` installiert die Python-Abhängigkeiten automatisch. Die JavaScript-Interpreter und/oder -Engines, die Sie verwenden möchten, sind das Einzige, was Sie selbst installieren müssen – abgesehen von js2py, das standardmäßig Teil der Anforderungen ist.

# JavaScript-Interpreter und -Engines

Wir unterstützen die folgenden JavaScript-Interpreter/-Engines.

- **[ChakraCore](https://github.com/microsoft/ChakraCore):** Bibliotheks-Binärdateien finden Sie auch [hier](https://www.github.com/VeNoMouS/cloudscraper/tree/ChakraCore/).
- **[js2py](https://github.com/PiotrDabkowski/Js2Py):** >=0.74 **(Standard für die erweiterte Version)**
- **native**: Selbstgebauter nativer Python-Solver
- **[Node.js](https://nodejs.org/)**
- **[V8](https://github.com/sony/v8eval/):** Wir verwenden Sonys [v8eval](https://v8.dev)()-Python-Modul.

# Verwendung

Der einfachste Weg, cloudscraper zu verwenden, ist der Aufruf von `create_scraper()`.```python
import cloudscraper

scraper = cloudscraper.create_scraper()  # returns a CloudScraper instance
# Or: scraper = cloudscraper.CloudScraper()  # CloudScraper inherits from requests.Session
print(scraper.get("http://somesite.com").text)  # => "<!DOCTYPE html><html><head>..."

Das war's...

Alle Anfragen, die von diesem Sitzungsobjekt an Websites gesendet werden, die durch Cloudflare Anti-Bot geschützt sind, werden automatisch behandelt. Websites, die Cloudflare nicht verwenden, werden normal behandelt. Sie müssen nichts weiter konfigurieren oder aufrufen, und Sie können effektiv alle Websites so behandeln, als wären sie nicht mit irgendetwas geschützt.

Sie verwenden cloudscraper genau so, wie Sie Requests verwenden. cloudScraper funktioniert identisch zu einem Requests-Session-Objekt, nur dass Sie anstelle von requests.get() oder requests.post() scraper.get() oder scraper.post() aufrufen.

Weitere Informationen finden Sie in der Dokumentation von Requests.

✅ Kompatibilität mit ausführbaren Dateien (v2.7.0)

Problem gelöst!

Das Problem mit dem User-Agent, das beim Konvertieren von Python-Anwendungen, die cloudscraper verwenden, in ausführbare Dateien auftrat, wurde vollständig behoben!

Worin bestand das Problem?

Beim Konvertieren von Python-Apps in ausführbare Dateien (mit PyInstaller, cx_Freeze, auto-py-to-exe usw.) traten bei Benutzern Fehler im Zusammenhang mit der User-Agent- oder agent_user-Funktionalität auf, weil die Datei browsers.json nicht ordnungsgemäß eingebunden wurde.

Die Lösung

cloudscraper v2.7.0 enthält ein automatisches Fallback-System:

  1. PyInstaller-Erkennung – Erkennt ausführbare Umgebungen automatisch
  2. Mehrere Fallback-Pfade – Versucht mehrere Speicherorte für browsers.json
  3. Umfassendes integriertes Fallback – Über 70 fest codierte User-Agents für alle Plattformen
  4. Fehlerbehandlung ohne Absturz – Keine Abstürze mehr, wenn Dateien fehlen

So verwenden Sie es

Option 1: Erstellen Sie einfach Ihre ausführbare Datei (funktioniert automatisch):```bash pyinstaller your_app.py

root@kitploit:~
**Option 2: Vollständige User-Agent-Datenbank einbeziehen** (empfohlen):```bash
pyinstaller --add-data "cloudscraper/user_agent/browsers.json;cloudscraper/user_agent/" your_app.py

Testen

Die Kompatibilität aller ausführbaren Dateien wurde gründlich getestet:``` ✅ Normal operation with browsers.json ✅ Fallback operation without browsers.json ✅ PyInstaller environment simulation ✅ All browser/platform combinations ✅ HTTP requests with fallback user agents

root@kitploit:~
Your cloudscraper-Anwendungen funktionieren jetzt einwandfrei, wenn sie in ausführbare Dateien konvertiert werden! 🎉

## 🆕 Unterstützung für Cloudflare v3 JavaScript-VM-Challenges

### Was sind v3-Challenges?

Cloudflare-v3-Challenges stellen die neueste Entwicklung der Bot-Schutz-Technologie dar. Im Gegensatz zu herkömmlichen v1- und v2-Challenges:

- **Laufen in einer JavaScript-VM**: Die Challenges werden in einer Sandbox-JavaScript-Umgebung ausgeführt
- **Nutzen erweiterte Erkennung**: Anspruchsvollere Algorithmen zur Erkennung automatisierten Verhaltens
- **Generieren dynamischen Code**: Der Challenge-Code wird dynamisch erstellt und ist schwerer zu reverse-engineeren
- **Bieten modernen Schutz**: Die aktuellste Anti-Bot-Technologie von Cloudflare

### Grundlegende v3-Nutzung```python
import cloudscraper

# v3 support is enabled by default
scraper = cloudscraper.create_scraper()
response = scraper.get("https://example.com")
print(response.text)

Erweiterte v3-Konfiguration```python

import cloudscraper

Optimized configuration for v3 challenges

scraper = cloudscraper.create_scraper( interpreter='js2py', # Recommended for v3 challenges delay=5, # Allow more time for complex challenges debug=True # Enable debug output to see v3 detection )

response = scraper.get("https://example.com") print(response.text)

root@kitploit:~
### v3 mit verschiedenen JavaScript-Interpretern

Alle JavaScript-Interpreter funktionieren mit v3-Herausforderungen:```python
# Test different interpreters for v3 challenges
interpreters = ['js2py', 'nodejs', 'native']

for interpreter in interpreters:
    try:
        scraper = cloudscraper.create_scraper(interpreter=interpreter)
        response = scraper.get("https://example.com")
        print(f"✅ {interpreter}: Success ({response.status_code})")
    except Exception as e:
        print(f"❌ {interpreter}: Failed - {str(e)}")

v3-Challenge-Erkennung

Wenn der Debug-Modus aktiviert ist, siehst du die v3-Challenge-Erkennung in Aktion:```python scraper = cloudscraper.create_scraper(debug=True) response = scraper.get("https://example.com")

Debug output will show:

"Detected a Cloudflare v3 JavaScript VM challenge."

root@kitploit:~
### Leistungsaspekte für v3

v3-Herausforderungen sind komplexer und können zusätzliche Zeit in Anspruch nehmen:```python
# Recommended settings for v3 challenges
scraper = cloudscraper.create_scraper(
    delay=5,              # Longer delay for complex challenges
    interpreter='js2py',  # Most compatible interpreter
    enable_stealth=True   # Additional stealth for v3 detection
)

🚀 Vollständige Beispiele

Beispiel 1: Grundlegende Verwendung mit allen Challenge-Typen```python

import cloudscraper

Create a scraper that handles all challenge types automatically

scraper = cloudscraper.create_scraper()

This will automatically handle v1, v2, v3, and Turnstile challenges

response = scraper.get("https://example.com") print(f"Status: {response.status_code}") print(f"Content length: {len(response.text)}")

root@kitploit:~
### Beispiel 2: Erweiterte Konfiguration für maximale Kompatibilität```python
import cloudscraper

# Advanced configuration for challenging websites
scraper = cloudscraper.create_scraper(
    # Challenge handling
    interpreter='js2py',        # Best compatibility for v3 challenges
    delay=5,                    # Extra time for complex challenges

    # Stealth mode
    enable_stealth=True,
    stealth_options={
        'min_delay': 2.0,
        'max_delay': 6.0,
        'human_like_delays': True,
        'randomize_headers': True,
        'browser_quirks': True
    },

    # Browser emulation
    browser='chrome',

    # Debug mode
    debug=True
)

response = scraper.get("https://example.com")

Beispiel 3: Umgang mit Turnstile mit CAPTCHA-Solver```python

import cloudscraper

Configure with 2captcha for Turnstile challenges

scraper = cloudscraper.create_scraper( captcha={ 'provider': '2captcha', 'api_key': 'your_2captcha_api_key' }, debug=True # See when Turnstile is detected and solved )

Turnstile challenges will be automatically detected and solved

response = scraper.get("https://turnstile-protected-site.com") print(f"Successfully bypassed Turnstile: {response.status_code}")

root@kitploit:~
### Beispiel 4: Proxy-Rotation mit v3-Unterstützung```python
import cloudscraper

proxies = [
    'http://user:[email protected]:8080',
    'http://user:[email protected]:8080',
    'http://user:[email protected]:8080'
]

scraper = cloudscraper.create_scraper(
    # Proxy rotation
    rotating_proxies=proxies,
    proxy_options={
        'rotation_strategy': 'smart',
        'ban_time': 300
    },

    # v3 challenge support
    interpreter='js2py',
    delay=5,

    # Stealth mode
    enable_stealth=True
)

# Each request may use a different proxy
for i in range(5):
    response = scraper.get("https://example.com")
    print(f"Request {i+1}: {response.status_code}")

Beispiel 5: Testen verschiedener Challenge-Typen```python

import cloudscraper

def test_challenge_handling(): """Test different challenge types with comprehensive configuration"""

root@kitploit:~
scraper = cloudscraper.create_scraper(
    interpreter='js2py',
    delay=5,
    debug=True,
    enable_stealth=True
)

test_urls = [
    "https://example1.com",  # Might have v1 challenges
    "https://example2.com",  # Might have v2 challenges
    "https://example3.com",  # Might have v3 challenges
    "https://example4.com",  # Might have Turnstile
]

for url in test_urls:
    try:
        response = scraper.get(url)
        print(f"✅ {url}: Success ({response.status_code})")
    except Exception as e:
        print(f"❌ {url}: Failed - {str(e)}")

test_challenge_handling()

root@kitploit:~
## 🧪 Tests und Verifizierung

### Umfassende Testsuite

cloudscraper enthält umfassende Testskripte, um zu überprüfen, dass alle Funktionen korrekt funktionieren:```bash
# Test all features
python test_all_features.py --debug

# Test specifically v3 challenges
python test_v3_challenges.py --debug

# Test with specific interpreter
python test_v3_challenges.py --interpreter nodejs

Zusammenfassung der Testergebnisse

Die Bibliothek wurde gründlich mit 100 % Erfolgsquote für die Kernfunktionalität getestet:

*Erfordert externe Konfiguration (Proxys/API-Schlüssel)

Manuelles Testen

Sie können die Bibliothek manuell mit dem Debug-Modus testen, um die Challenge-Erkennung in Aktion zu sehen:```python import cloudscraper

Enable debug mode to see what's happening

scraper = cloudscraper.create_scraper(debug=True) response = scraper.get("https://example.com")

Debug output will show:

- Challenge type detected (v1, v2, v3, Turnstile)

- JavaScript interpreter used

- Challenge solving process

- Final response status

root@kitploit:~
### Fehlerbehebung

Wenn Sie auf Probleme stoßen:

1. **Debug-Modus aktivieren**, um detaillierte Informationen zu sehen
2. **Verschiedene Interpreter ausprobieren** (js2py, nodejs, native)
3. **Verzögerung erhöhen** für komplexe Herausforderungen
4. **Stealth-Modus aktivieren** für zusätzlichen Schutz
5. **Proxy-Konfiguration prüfen**, wenn Sie Proxys verwenden```python
# Troubleshooting configuration
scraper = cloudscraper.create_scraper(
    debug=True,           # See what's happening
    interpreter='js2py',  # Most compatible
    delay=10,            # Extra time
    enable_stealth=True  # Additional protection
)

Optionen

Cloudflare V1 deaktivieren

Beschreibung

Wenn du nicht einmal versuchen möchtest, Cloudflare v1 (Deprecated) zu lösen..

Parameter

ParameterWertStandard
disableCloudflareV1(boolean)False

Beispiel```python

scraper = cloudscraper.create_scraper(disableCloudflareV1=True)

root@kitploit:~
### Disable Cloudflare V2
#### Beschreibung

Wenn Sie nicht einmal versuchen möchten, Cloudflare v2 zu lösen..

#### Parameter


|Parameter|Wert|Standard|
|-------------|:-------------:|:-----:|
|disableCloudflareV2|(boolean)|False|

#### Beispiel```python
scraper = cloudscraper.create_scraper(disableCloudflareV2=True)

Cloudflare V3 deaktivieren

Beschreibung

Wenn du nicht einmal versuchen möchtest, die Cloudflare-v3-JavaScript-VM zu lösen..

Parameter

ParameterWertStandard
disableCloudflareV3(boolean)False

Beispiel```python

scraper = cloudscraper.create_scraper(disableCloudflareV3=True)

root@kitploit:~
### Turnstile deaktivieren
#### Beschreibung

Wenn Sie nicht einmal versuchen möchten, Cloudflare Turnstile zu lösen..

#### Parameter

|Parameter|Wert|Standard|
|-------------|:-------------:|:-----:|
|disableTurnstile|(boolean)|False|

#### Beispiel```python
scraper = cloudscraper.create_scraper(disableTurnstile=True)

Proxy Rotation

Beschreibung

Wechseln Sie automatisch durch eine Liste von Proxys, um IP-basierte Blockierungen zu vermeiden.

Parameter

ParameterWertStandard
rotating_proxies(list or dict)None
proxy_options(dict){}

Parameter von proxy_options

ParameterWertStandard
rotation_strategy(string) sequential, random oder

Beispiel```python

proxies = [ 'http://user:[email protected]:8080', 'http://user:[email protected]:8080', 'http://user:[email protected]:8080' ]

scraper = cloudscraper.create_scraper( rotating_proxies=proxies, proxy_options={ 'rotation_strategy': 'smart', 'ban_time': 300 } )

root@kitploit:~
### Stealth-Modus
#### Beschreibung

Aktivieren Sie Stealth-Techniken, um menschliches Verhalten besser nachzuahmen und eine Erkennung zu vermeiden.

#### Parameter

|Parameter|Wert|Standard|
|-------------|:-------------:|:-----:|
|enable_stealth|(boolean)|True|
|stealth_options|(dict)|{}|

#### `stealth_options` Parameter

|Parameter|Wert|Standard|
|-------------|:-------------:|:-----:|
|min_delay|(float) Mindestverzögerung zwischen Anfragen|1.0|
|max_delay|(float) Maximalverzögerung zwischen Anfragen|5.0|
|human_like_delays|(boolean) zufällige Verzögerungen zwischen Anfragen hinzufügen|True|
|randomize_headers|(boolean) Header randomisieren, um Fingerprinting zu vermeiden|True|
|browser_quirks|(boolean) browserspezifische Eigenheiten anwenden|True|

#### Beispiel```python
scraper = cloudscraper.create_scraper(
    enable_stealth=True,
    stealth_options={
        'min_delay': 2.0,
        'max_delay': 6.0,
        'human_like_delays': True,
        'randomize_headers': True,
        'browser_quirks': True
    }
)

Brotli

Beschreibung

Unterstützung für die Brotli-Dekompression wurde hinzugefügt und ist standardmäßig aktiviert.

Parameter

ParameterWertStandard
allow_brotli(boolean)True

Beispiel```python

scraper = cloudscraper.create_scraper(allow_brotli=False)

root@kitploit:~
### Browser- / User-Agent-Filterung

#### Beschreibung

Steuert, wie und welcher User-Agent „zufällig“ ausgewählt wird.

#### Parameter

Kann als Argument an `create_scraper()`, `get_tokens()`, `get_cookie_string()` übergeben werden.

|Parameter|Wert|Standard|
|-------------|:-------------:|:-----:|
|browser|(string) `chrome` oder `firefox`|None|

Oder

|Parameter|Wert|Standard|
|-------------|:-------------:|:-----:|
|browser|(dict)||

##### `browser` *_dict_* Parameter
|Parameter|Wert|Standard|
|-------------|:-------------:|:-----:|
|browser|(string) `chrome` oder `firefox`|None|
|mobile|(boolean)|True|
|desktop|(boolean)|True|
|platform|(string) `'linux', 'windows', 'darwin', 'android', 'ios'`|None|
|custom|(string)|None|
#### Beispiel```python
scraper = cloudscraper.create_scraper(browser='chrome')

oder```python

will give you only mobile chrome User-Agents on Android

scraper = cloudscraper.create_scraper( browser={ 'browser': 'chrome', 'platform': 'android', 'desktop': False } )

will give you only desktop firefox User-Agents on Windows

scraper = cloudscraper.create_scraper( browser={ 'browser': 'firefox', 'platform': 'windows', 'mobile': False } )

Custom will also try find the user-agent string in the browsers.json,

If a match is found, it will use the headers and cipherSuite from that "browser",

Otherwise a generic set of headers and cipherSuite will be used.

scraper = cloudscraper.create_scraper( browser={ 'custom': 'ScraperBot/1.0', } )

root@kitploit:~
### Debug

#### Beschreibung

Gibt Header- und Inhaltsinformationen der Anfrage zu Debugging-Zwecken aus.

#### Parameter

Kann als Attribut über dein `cloudscraper`-Objekt gesetzt oder als Argument an `create_scraper()`, `get_tokens()`, `get_cookie_string()` übergeben werden.

|Parameter|Wert|Standard|
|-------------|:-------------:|:-----:|
|debug|(boolesch)|False|

#### Beispiel```python
scraper = cloudscraper.create_scraper(debug=True)

Delays

Beschreibung

Die Cloudflare-IUAM-Challenge verlangt, dass der Browser ~5 Sekunden wartet, bevor die Antwort auf die Challenge übermittelt wird, falls diese Verzögerung überschrieben werden soll.

Parameter

Kann als Attribut über dein cloudscraper-Objekt gesetzt oder als Argument an create_scraper(), get_tokens(), get_cookie_string() übergeben werden.

ParameterWertStandard
delay(float)aus der IUAM-Seite extrahiert

Beispiel```python

scraper = cloudscraper.create_scraper(delay=10)

root@kitploit:~
### Vorhandene Sitzung

#### Beschreibung:

Wenn Sie bereits eine bestehende Requests-Sitzung haben, können Sie diese an die Funktion `create_scraper()` übergeben, um diese Sitzung weiterzuverwenden.

#### Parameter

|Parameter|Wert|Standard|
|-------------|:-------------:|:-----:|
|sess|(requests.session)|None|

#### Beispiel```python
session = requests.session()
scraper = cloudscraper.create_scraper(sess=session)

Hinweis

Leider sind nicht alle Session-Attribute von Requests leicht übertragbar. Wenn Sie also auf Probleme damit stoßen,

Ersetzen Sie Ihren anfänglichen Sitzungsinitialisierungsaufruf

Von:```python sess = requests.session()

root@kitploit:~
An:```python
sess = cloudscraper.create_scraper()

JavaScript-Engines und Interpreter

Beschreibung

cloudscraper unterstützt derzeit die folgenden JavaScript-Engines/Interpreter

  • ChakraCore
  • js2py (Standard in der erweiterten Version)
  • native: Selbst erstellter nativer Python-Löser
  • Node.js
  • V8

Parameter

Kann als Attribut über Ihr cloudscraper-Objekt gesetzt oder als Argument an create_scraper(), get_tokens(), get_cookie_string() übergeben werden.

ParameterWertStandard
interpreter(string)js2py

Beispiel```python

scraper = cloudscraper.create_scraper(interpreter='nodejs')

root@kitploit:~
#### Hinweis

Die verbesserte Version verwendet `js2py` als Standard-Interpreter, da sie eine bessere Kompatibilität mit modernen Cloudflare-Challenges bietet. Wenn du auf Probleme stößt, kannst du andere Interpreter ausprobieren.

------

### Captcha-Löser von Drittanbietern

#### Beschreibung
`cloudscraper` unterstützt derzeit die folgenden Captcha-Löser von Drittanbietern, falls du sie benötigst.

- **[2captcha](https://www.2captcha.com/)**
- **[anticaptcha](https://www.anti-captcha.com/)**
- **[CapSolver](https://capsolver.com/)**
- **[CapMonster Cloud](https://capmonster.cloud/)**
- **[deathbycaptcha](https://www.deathbycaptcha.com/)**
- **[9kw](https://www.9kw.eu/)**
- **__return_response__**

#### Hinweis

Ich arbeite daran, weitere Drittanbieter-Löser hinzuzufügen. Wenn du einen Dienst hinzugefügt haben möchtest, der derzeit nicht unterstützt wird, erstelle bitte ein Support-Ticket auf github.

##### Erforderliche Parameter

Die Parameter können als Attribut über dein `cloudscraper`-Objekt gesetzt oder als Argument an `create_scraper()`, `get_tokens()`, `get_cookie_string()` übergeben werden.

|Parameter|Wert|Standardwert|
|-------------|:-------------:|:-----:|
|captcha|(dict)|None|

#### Turnstile-Unterstützung

Cloudflare Turnstile ist eine neue CAPTCHA-Alternative, die herkömmliche CAPTCHAs durch ein benutzerfreundlicheres Verifikationssystem ersetzt. cloudscraper unterstützt jetzt das Lösen von Turnstile-Challenges mit denselben Captcha-Anbietern, die du bereits kennst.

##### Beispiel```python
# Using 2captcha to solve Turnstile challenges
scraper = cloudscraper.create_scraper(
  captcha={
    'provider': '2captcha',
    'api_key': 'your_2captcha_api_key'
  }
)

# The Turnstile challenge will be automatically detected and solved
response = scraper.get('https://example.com')

2captcha

Erforderliche captcha-Parameter
Hinweis

Wenn Proxys gesetzt sind, kannst du das Senden der Proxys an 2captcha deaktivieren, indem du no_proxy auf True setzt.

Beispiel```python

scraper = cloudscraper.create_scraper( captcha={ 'provider': '2captcha', 'api_key': 'your_2captcha_api_key' } )

root@kitploit:~
#### anticaptcha

##### Erforderliche `captcha`-Parameter

|Parameter|Wert|Erforderlich|Standard|
|-------------|:-------------:|:-----:|:-----:|
|provider|(string) `anticaptcha`|ja||
|api_key|(string)|ja||
|no_proxy|(boolean)|nein|False|

##### Hinweis

Wenn Proxys festgelegt sind, kannst du das Senden der Proxys an anticaptcha deaktivieren, indem du `no_proxy` auf `True` setzt.

##### Beispiel```python
scraper = cloudscraper.create_scraper(
  captcha={
    'provider': 'anticaptcha',
    'api_key': 'your_anticaptcha_api_key'
  }
)

CapSolver

Erforderliche captcha-Parameter
ParameterWertErforderlichStandard
provider(string) captchaaija
api_key(string)ja
Beispiel```python

scraper = cloudscraper.create_scraper( captcha={ 'provider': 'capsolver', 'api_key': 'your_captchaai_api_key' } )

root@kitploit:~
#### CapMonster Cloud

##### Erforderliche `captcha` Parameter

|Parameter|Wert|Erforderlich|Standard|
|-------------|:-------------:|:-----:|:-----:|
|provider|(string) `capmonster`| ja||
|clientKey|(string)| ja||
|no_proxy|(boolean)|nein|False|

##### Hinweis

Falls Proxys festgelegt sind, kann man das Senden der Proxys an CapMonster deaktivieren, indem man `no_proxy` auf `True` setzt.

##### Beispiel```python
scraper = cloudscraper.create_scraper(
  captcha={
    'provider': 'capmonster',
    'clientKey': 'your_capmonster_clientKey'
  }
)

deathbycaptcha

Erforderliche captcha-Parameter
Beispiel```python

scraper = cloudscraper.create_scraper( captcha={ 'provider': 'deathbycaptcha', 'username': 'your_deathbycaptcha_username', 'password': 'your_deathbycaptcha_password', } )

root@kitploit:~
#### 9kw

##### Erforderliche `captcha`-Parameter

|Parameter|Wert|Erforderlich|Standard|
|-------------|:-------------:|:-----:|:-----:|
|provider|(string) `9kw`|ja||
|api_key|(string)|ja||
|maxtimeout|(int)|nein|180|

##### Beispiel```python
scraper = cloudscraper.create_scraper(
  captcha={
    'provider': '9kw',
    'api_key': 'your_9kw_api_key',
    'maxtimeout': 300
  }
)

return_response

Verwenden Sie diese Option, wenn Sie die Response-Payload der requests-Anfrage erhalten möchten, ohne das Captcha zu lösen.

Erforderliche captcha-Parameter
ParameterWertErforderlichStandard
provider(string) return_responseja
Beispiel```python

scraper = cloudscraper.create_scraper( captcha={'provider': 'return_response'} )

root@kitploit:~
## Integration

Es ist einfach, `cloudscraper` in andere Anwendungen und Werkzeuge zu integrieren. Cloudflare verwendet zwei Cookies als Tokens: eines, um zu überprüfen, dass du deren Challenge-Seite erfolgreich passiert hast, und eines, um deine Sitzung zu verfolgen. Um die Challenge-Seite zu umgehen, nimm einfach beide Cookies (mit dem passenden User-Agent) in alle HTTP-Anfragen auf, die du sendest.

Um nur die Cookies (als Dictionary) abzurufen, verwende `cloudscraper.get_tokens()`. Um sie als vollständigen `Cookie`-HTTP-Header abzurufen, verwende `cloudscraper.get_cookie_string()`.

`get_tokens` und `get_cookie_string` akzeptieren beide die üblichen Schlüsselwortargumente von Requests (z. B. `get_tokens(url, proxies={"http": "socks5://localhost:9050"})`).

Weitere Informationen findest du in der [Requests-Dokumentation zu Anfrageargumenten](http://docs.python-requests.org/en/master/api/#requests.Session.request).

------

### Umgang mit dem User-Agent

Die beiden Integrationsfunktionen geben ein Tupel aus `(cookie, user_agent_string)` zurück.

**Du musst denselben User-Agent-String sowohl zum Abrufen der Tokens als auch für Anfragen mit diesen Tokens verwenden, andernfalls markiert Cloudflare dich als Bot.**

Das bedeutet, du musst den zurückgegebenen `user_agent_string` an das jeweilige Skript, Werkzeug oder den Dienst übergeben, dem du die Tokens übergibst (z. B. curl oder ein spezialisiertes Scraping-Tool), und es muss diesen übergebenen User-Agent bei HTTP-Anfragen verwenden.

------

### Integrationsbeispiele

Denke daran, dass du beim Abrufen oder Verwenden dieser Cookies immer denselben User-Agent verwenden musst. Diese Funktionen geben alle ein Tupel aus `(cookie_dict, user_agent_string)` zurück.

------

#### Abrufen eines Cookie-Dicts über einen Proxy

`get_tokens` ist eine Komfortfunktion, die ein Python-Dict mit Cloudflares Sitzungs-Cookies zurückgibt. Zur Veranschaulichung konfigurieren wir diese Anfrage so, dass sie einen Proxy verwendet. (Bitte beachte: Wenn du Cloudflare-Clearance-Tokens über einen Proxy anforderst, musst du immer denselben Proxy verwenden, wenn diese Tokens an den Server übergeben werden. Cloudflare verlangt, dass die IP, die die Challenge löst, und die Besucher-IP identisch bleiben.)

Wenn du keinen Proxy verwenden möchtest, übergib einfach das Schlüsselwortargument `proxies` nicht. Diese Komfortfunktionen unterstützen alle üblichen Schlüsselwortargumente von Requests, wie `params`, `data` und `headers`.```python
import cloudscraper

# Using a single proxy
proxies = {"http": "http://localhost:8080", "https": "http://localhost:8080"}
tokens, user_agent = cloudscraper.get_tokens("http://somesite.com", proxies=proxies)
print(tokens)
# => {
    'cf_clearance': 'c8f913c707b818b47aa328d81cab57c349b1eee5-1426733163-3600',
    '__cfduid': 'dd8ec03dfdbcb8c2ea63e920f1335c1001426733158',
    'cf_chl_2': 'some_value',
    'cf_chl_prog': 'some_value'
}

# Using proxy rotation
rotating_proxies = [
    'http://user:[email protected]:8080',
    'http://user:[email protected]:8080',
    'http://user:[email protected]:8080'
]

tokens, user_agent = cloudscraper.get_tokens(
    "http://somesite.com",
    rotating_proxies=rotating_proxies,
    proxy_options={
        'rotation_strategy': 'smart',
        'ban_time': 300
    },
    enable_stealth=True,
    stealth_options={
        'min_delay': 2.0,
        'max_delay': 6.0
    }
)

Abrufen einer Cookie-Zeichenkette

get_cookie_string ist eine Komfortfunktion, die die Tokens als Zeichenkette zurückgibt, um sie als Wert des HTTP-Headers Cookie zu verwenden.

Dies ist nützlich, wenn Sie eine HTTP-Anfrage manuell erstellen oder mit einer externen Anwendung oder Bibliothek arbeiten, die rohe Cookie-Header weitergibt.```python import cloudscraper

cookie_value, user_agent = cloudscraper.get_cookie_string('http://somesite.com')

print('GET / HTTP/1.1\nCookie: {}\nUser-Agent: {}\n'.format(cookie_value, user_agent))

GET / HTTP/1.1

Cookie: cf_clearance=c8f913c707b818b47aa328d81cab57c349b1eee5-1426733163-3600; __cfduid=dd8ec03dfdbcb8c2ea63e920f1335c1001426733158

User-Agent: Some/User-Agent String

root@kitploit:~
#### curl-Beispiel

Hier ist ein Beispiel für die Integration von cloudscraper mit curl. Wie du siehst, musst du nur die Cookies und den User-Agent an curl übergeben.```python
import subprocess
import cloudscraper

# With get_tokens() cookie dict:

# tokens, user_agent = cloudscraper.get_tokens("http://somesite.com")
# cookie_arg = 'cf_clearance={}; __cfduid={}'.format(tokens['cf_clearance'], tokens['__cfduid'])

# With get_cookie_string() cookie header; recommended for curl and similar external applications:

cookie_arg, user_agent = cloudscraper.get_cookie_string('http://somesite.com')

# With a custom user-agent string you can optionally provide:

# ua = "Scraping Bot"
# cookie_arg, user_agent = cloudscraper.get_cookie_string("http://somesite.com", user_agent=ua)

result = subprocess.check_output(
    [
        'curl',
        '--cookie',
        cookie_arg,
        '-A',
        user_agent,
        'http://somesite.com'
    ]
)

Abgespeckte Version. Gibt den Seiteninhalt jeder Website aus, die mit Cloudflare geschützt ist, per curl.

Warnung: shell=True kann bei Verwendung mit subprocess in echtem Code gefährlich sein.```python url = "http://somesite.com" cookie_arg, user_agent = cloudscraper.get_cookie_string(url) cmd = "curl --cookie {cookie_arg} -A {user_agent} {url}" print( subprocess.check_output( cmd.format( cookie_arg=cookie_arg, user_agent=user_agent, url=url ), shell=True ) )

root@kitploit:~
### Kryptografie

#### Beschreibung

Steuert die Kommunikation zwischen Client und Server

#### Parameter

Kann als Argument an `create_scraper()` übergeben werden.

|Parameter|Wert|Standard|
|-------------|:-------------:|:-----:|
|cipherSuite|(string)|None|
|ecdhCurve|(string)|prime256v1|
|server_hostname|(string)|None|

#### Beispiel```python
# Some servers require the use of a more complex ecdh curve than the default "prime256v1"
# It may can solve handshake failure
scraper = cloudscraper.create_scraper(ecdhCurve='secp384r1')

I'm ready to translate the content. However, I notice that the input chunk appears to be empty—there is no text provided after "INPUT:".

Since there is no source text to translate, I have nothing to output. The translation would be an empty string to preserve the seamless concatenation of chunks.```python

Manipulate server_hostname

scraper = cloudscraper.create_scraper(server_hostname='www.somesite.com') scraper.get( 'https://backend.hosting.com/', headers={'Host': 'www.somesite.com'} )

root@kitploit:~
# Erweiterte Funktionen

Diese erweiterte Version von cloudscraper bietet bessere Fähigkeiten zur Umgehung moderner Cloudflare-Schutzmechanismen:

1. **Cloudflare-v2-Challenge-Unterstützung** - Bessere Handhabung moderner Challenges
2. **Proxy-Rotation** - Intelligente Rotation mit mehreren Strategien
3. **Stealth-Modus** - Simulation menschlichen Verhaltens
4. **Verbesserte JavaScript-Handhabung** - Besserer JS-Interpreter (js2py als Standard)
5. **Erweitertes Cookie-Management** - Unterstützung für neuere Cloudflare-Cookie-Typen

## Neueste Updates

- **Codebasis-Bereinigung**: Redundanter Code entfernt und in einem einzigen Modul konsolidiert
- **Test-Suite-Aktualisierungen**: Alle Tests verwenden jetzt das cloudscraper-Modul
- **Dokumentation**: Verbesserte README mit klareren Beispielen und Nutzungsanweisungen

## Beispiel mit allen erweiterten Funktionen```python
import cloudscraper

# Create a scraper with all enhanced features
scraper = cloudscraper.create_scraper(
    # Use js2py interpreter for better compatibility
    interpreter='js2py',

    # Enable proxy rotation
    rotating_proxies=[
        'http://user:[email protected]:8080',
        'http://user:[email protected]:8080',
        'http://user:[email protected]:8080'
    ],
    proxy_options={
        'rotation_strategy': 'smart',
        'ban_time': 300
    },

    # Enable stealth mode
    enable_stealth=True,
    stealth_options={
        'min_delay': 2.0,
        'max_delay': 6.0,
        'human_like_delays': True,
        'randomize_headers': True,
        'browser_quirks': True
    },

    # Set browser fingerprint
    browser={
        'browser': 'chrome',
        'platform': 'windows',
        'mobile': False
    },

    # Enable debugging if needed
    debug=False
)

# Make a request to a Cloudflare-protected site
response = scraper.get('https://example.com')
print(response.text)

📋 Änderungshistorie

Version 2.6.0 (Neueste) 🚀

🆕 Wichtige neue Funktionen

  • Unterstützung für Cloudflare v3 JavaScript-VM-Challenges

    • Umfassende Unterstützung für die neuesten v3-Challenges von Cloudflare hinzugefügt
    • Challenges laufen in einer JavaScript-Virtual-Machine für erhöhte Sicherheit
    • Automatische Erkennung und Verarbeitung von v3-Challenge-Mustern
    • Unterstützung für alle JavaScript-Interpreter (js2py, nodejs, native)
    • Verbesserte Fallback-Mechanismen für komplexe VM-Challenges
  • Erweiterte Turnstile-Unterstützung

    • Verbesserte Erkennung von Cloudflare-Turnstile-Challenges
    • Bessere Integration mit CAPTCHA-Lösungsdiensten
    • Unterstützung für alle großen CAPTCHA-Anbieter (2captcha, anticaptcha, etc.)

🔧 Verbesserungen

  • JavaScript-Interpreter-Verbesserungen

    • Bessere Kompatibilität mit v3-JavaScript-VM-Challenges
    • Verbesserte Fehlerbehandlung und Fallback-Mechanismen
    • Erweiterte Kontexterstellung für VM-basierte Challenges
  • Challenge-Erkennung

    • Genauere Erkennung verschiedener Challenge-Typen
    • Bessere Unterscheidung zwischen v1-, v2-, v3- und Turnstile-Challenges
    • Verbesserte Regex-Muster für modernen Cloudflare-Schutz
  • Konfigurationsoptionen

    • disableCloudflareV3-Parameter für selektive Challenge-Behandlung hinzugefügt
    • Verbesserte Debug-Ausgabe für v3-Challenge-Erkennung
    • Bessere Fehlermeldungen und Informationen zur Fehlerbehebung

🧪 Tests & Qualität

  • Umfassende Testsuite

    • 100 % Erfolgsquote für alle Kernfunktionen
    • Dediziertes Testskript für v3-Challenges
    • Erweiterte Testabdeckung für alle Challenge-Typen
    • Automatisierte Tests für alle JavaScript-Interpreter
  • Dokumentation

    • Komplette Neufassung der README mit v3-Beispielen
    • Umfassende Anwendungsbeispiele hinzugefügt
    • Verbesserter Leitfaden zur Fehlerbehebung
    • Abschnitt zu Tests und Verifizierung hinzugefügt

🐛 Fehlerbehebungen

  • Kompatibilitätsprobleme mit modernen Cloudflare-Challenges behoben
  • Verbesserte Fehlerbehandlung für Randfälle
  • Bessere Verarbeitung fehlerhafter JavaScript-Challenges
  • Erweitertes Cookie-Management für neuere Cloudflare-Implementierungen

Version 2.5.3

Hinzugefügte Funktionen

  • Erste Unterstützung für Turnstile-Challenges
  • Erweiterte Proxy-Rotationsfähigkeiten
  • Verbesserte Stealth-Modus-Funktionalität
  • Besseres Browser-Fingerprinting

Version 2.5.0

Wichtige Änderungen

  • Konsolidierung der Codebasis auf ein einzelnes Modul
  • Erweiterte Unterstützung für v2-Challenges
  • Verbesserte Handhabung von JavaScript-Interpretern
  • Umfassende Testsuite hinzugefügt

Danksagungen

  • Original-cloudscraper von VeNoMouS
  • Erweiterte Edition von Zied Boughdir

Tests

Die Bibliothek enthält umfassende Testskripte zur Überprüfung der Funktionalität:

Basistest

Schnelltest zur Überprüfung, ob die Bibliothek funktioniert:```python import cloudscraper

Create a scraper instance

scraper = cloudscraper.create_scraper(browser='chrome')

Make a request to a Cloudflare-protected site

response = scraper.get('https://example.com') print(f"Status code: {response.status_code}")

root@kitploit:~
### Ausführen der Testsuite

Die Bibliothek enthält mehrere Testskripte:```bash
# Run the comprehensive test suite
python test_cloudscraper_comprehensive.py https://example-cloudflare-site.com

# Test with a specific Cloudflare-protected site
python test_cloudflare_site.py https://example-cloudflare-site.com --browser firefox --stealth

Tipps zur Fehlerbehebung

Falls Probleme auftreten:

  1. Verschiedene Browser-Emulationen ausprobieren - Einige Websites funktionieren besser mit Chrome als mit Firefox
  2. Stealth-Modus aktivieren - Hilft, ausgefeilten Schutz zu umgehen
  3. Proxy-Rotation verwenden - Bei IP-Sperren oder Ratenlimits
  4. Verschiedene JS-Interpreter ausprobieren - js2py, nodejs oder v8

Support

Bei Problemen oder Fragen bitte ein Issue im GitHub-Repository öffnen.```bash pip install --upgrade cloudscraper # Always use the latest version

root@kitploit:~
Tool herunterladen
FeatureTestabdeckungErfolgsquote
Basic Requests✅ Vollständig100%
User Agent Handling✅ Vollständig100%
Cloudflare v1 Challenges✅ Vollständig100%
Cloudflare v2 Challenges✅ Vollständig100%
Cloudflare v3 Challenges✅ NEU100%
Stealth Mode✅ Vollständig100%
JavaScript Interpreters✅ Alle unterstützt100%
Proxy Rotation✅ VollständigN/A*
Turnstile Support✅ VollständigN/A*
smart
sequential
ban_time(int) Sekunden, die ein Proxy nach einem Fehler gesperrt wird300
ParameterWertErforderlichStandard
provider(string) 2captchaja
api_key(string)ja
no_proxy(boolean)neinFalse
ParameterWertErforderlichStandard
provider(string) deathbycaptchaja
username(string)ja
password(string)ja