
Un modulo Python per bypassare la pagina anti-bot di Cloudflare.
Potenziato da Zied Boughdir
Tutte le funzionalità testate con un tasso di successo del 100% per le funzionalità principali:
Un modulo Python per bypassare la pagina anti-bot di Cloudflare (nota anche come "I'm Under Attack Mode", o IUAM), implementato con Requests. Questa versione potenziata include il supporto per le sfide Cloudflare v2, la rotazione dei proxy, la modalità stealth e altro ancora. Cloudflare cambia periodicamente le proprie tecniche, quindi aggiornerò questo repository di frequente.
Questo può essere utile se desideri fare scraping o crawling di un sito web protetto da Cloudflare. La pagina anti-bot di Cloudflare attualmente controlla solo se il client supporta Javascript, anche se in futuro potrebbero aggiungere ulteriori tecniche.
Poiché Cloudflare modifica e rafforza costantemente la propria pagina di protezione, cloudscraper richiede un motore/interpreti JavaScript per risolvere le sfide Javascript. Ciò consente allo script di impersonare facilmente un normale browser web senza dover deoffuscare e analizzare esplicitamente il Javascript di Cloudflare.
Per riferimento, questo è il messaggio predefinito che Cloudflare utilizza per questo tipo di pagine:``` 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...
Qualsiasi script che utilizza cloudscraper attenderà circa 5 secondi alla prima visita di qualsiasi sito con Cloudflare anti-bot abilitato, anche se non si verificherà alcun ritardo dopo la prima richiesta.
# Installazione
Basta eseguire `pip install cloudscraper`. Il pacchetto PyPI è disponibile su https://pypi.org/project/cloudscraper/```bash
pip install cloudscraper
In alternativa, clona questo repository ed esegui python setup.py install.
Se in precedenza utilizzavi il pacchetto originale cloudscraper, ora puoi usare direttamente questa versione potenziata:```python
import cloudscraper # Enhanced version
L'API rimane compatibile, quindi devi solo modificare le istruzioni di importazione nel tuo codice. Tutte le chiamate di funzione e i parametri funzionano allo stesso modo.
### Struttura del Codebase
Il codebase è stato ottimizzato per migliorare la manutenibilità e ridurre la confusione:
- **Modulo Unico**: Tutto il codice ora si trova nel modulo `cloudscraper`
- **Ridondanza Rimossa**: Le directory ridondanti sono state rimosse
- **Test Aggiornati**: Tutti i file di test sono stati aggiornati per utilizzare il modulo `cloudscraper`
Questo rende il codebase più pulito e facile da mantenere, garantendo al contempo la compatibilità con il codice esistente che utilizza l'API originale.
## Caratteristiche Principali in cloudscraper
| Caratteristica | Descrizione | Stato |
|---------|-------------|--------|
| **🆕 Compatibilità Esecutivi** | Correzione completa per la conversione con PyInstaller, cx_Freeze, auto-py-to-exe | ✅ **RISOLTO** |
| **🆕 Sfide JavaScript VM v3** | Supporto per le più recenti sfide basate su JavaScript VM di Cloudflare | ✅ **NUOVO** |
| **🆕 Supporto Turnstile** | Supporto per il nuovo Turnstile di Cloudflare, sostitutivo dei CAPTCHA | ✅ **NUOVO** |
| **Supporto Sfide Moderne** | Supporto potenziato per le sfide Cloudflare v1, v2, v3 e Turnstile | ✅ Completo |
| **Rotazione Proxy** | Rotazione intelligente dei proxy integrata con multiple strategie | ✅ Potenziato |
| **Modalità Stealth** | Simulazione di comportamento umano per evitare il rilevamento | ✅ Potenziato |
| **Emulazione Browser** | Fingerprinting avanzato del browser per Chrome e Firefox | ✅ Stabile |
| **Gestione JavaScript** | Migliore interprete JavaScript (js2py come predefinito) per la risoluzione delle sfide | ✅ Potenziato |
| **Risolutori Captcha** | Supporto per molteplici servizi di risoluzione CAPTCHA | ✅ Stabile |
# Dipendenze
- **Python 3.8+** (Supporto rimosso per Python 3.6 e 3.7)
- **[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` installerà automaticamente le dipendenze Python. Gli interpreti e/o motori JavaScript che decidi di utilizzare sono le uniche cose che devi installare tu stesso, escluso js2py che fa parte dei requisiti come predefinito.
# Interpreti e Motori JavaScript