
Ein Python-Modul zur Umgehung der Anti-Bot-Seite von Cloudflare.
Verbessert von Zied Boughdir
Alle Funktionen wurden für die Kernfunktionalität mit 100% Erfolgsquote getestet:
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...
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.
Wenn Sie zuvor das ursprüngliche cloudscraper-Paket verwendet haben, können Sie jetzt diese erweiterte Version direkt verwenden:```python
import cloudscraper # Enhanced version
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.