
Um módulo Python para contornar a página anti-bot da Cloudflare.
Aprimorado por Zied Boughdir
Todos os recursos testados com 100% de taxa de sucesso para a funcionalidade principal:
Um módulo Python para contornar a página anti-bot do Cloudflare (também conhecida como "I'm Under Attack Mode", ou IUAM), implementado com Requests. Esta versão aprimorada inclui suporte para desafios Cloudflare v2, rotação de proxy, modo stealth e muito mais. O Cloudflare altera suas técnicas periodicamente, então atualizarei este repositório com frequência.
Isto pode ser útil se você desejar fazer scraping ou rastrear um site protegido pelo Cloudflare. A página anti-bot do Cloudflare atualmente apenas verifica se o cliente suporta Javascript, embora eles possam adicionar técnicas adicionais no futuro.
Devido ao Cloudflare estar continuamente mudando e endurecendo sua página de proteção, o cloudscraper requer um Motor/interpretador JavaScript para resolver desafios Javascript. Isso permite que o script se passe facilmente por um navegador comum sem desofuscar e analisar explicitamente o Javascript do Cloudflare.
Para referência, esta é a mensagem padrão que o Cloudflare usa para esses tipos de página:``` 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...
Qualquer script que use cloudscraper aguardará ~5 segundos na primeira visita a qualquer site com anti-bots do Cloudflare habilitados, embora nenhum atraso ocorra após a primeira solicitação.
# Instalação
Basta executar `pip install cloudscraper`. O pacote PyPI está em https://pypi.org/project/cloudscraper/```bash
pip install cloudscraper
Alternativamente, clone este repositório e execute python setup.py install.
Se você estava usando anteriormente o pacote original cloudscraper, agora você pode usar esta versão aprimorada diretamente:```python
import cloudscraper # Enhanced version
A API permanece compatível, então você só precisa alterar as declarações de import no seu código. Todas as chamadas de função e parâmetros funcionam da mesma forma.
### Estrutura da Base de Código
A base de código foi simplificada para melhorar a manutenibilidade e reduzir a confusão:
- **Módulo Único**: Todo o código agora está no módulo `cloudscraper`
- **Redundância Removida**: Os diretórios redundantes foram removidos
- **Testes Atualizados**: Todos os arquivos de teste foram atualizados para usar o módulo `cloudscraper`
Isso torna a base de código mais limpa e fácil de manter, garantindo ao mesmo tempo compatibilidade reversa com o código existente que usa a API original.
## Principais Recursos do cloudscraper
| Recurso | Descrição | Status |
|---------|-------------|--------|
| **🆕 Compatibilidade com Executáveis** | Correção completa para conversão com PyInstaller, cx_Freeze, auto-py-to-exe | ✅ **CORRIGIDO** |
| **🆕 Desafios de VM JavaScript v3** | Suporte aos mais recentes desafios baseados em VM JavaScript da Cloudflare | ✅ **NOVO** |
| **🆕 Suporte a Turnstile** | Suporte ao novo substituto de CAPTCHA Turnstile da Cloudflare | ✅ **NOVO** |
| **Suporte a Desafios Modernos** | Suporte aprimorado para desafios Cloudflare v1, v2, v3 e Turnstile | ✅ Completo |
| **Rotação de Proxy** | Rotação inteligente de proxy integrada com múltiplas estratégias | ✅ Aprimorado |
| **Modo Furtivo** | Simulação de comportamento semelhante ao humano para evitar detecção | ✅ Aprimorado |
| **Emulação de Navegador** | Impressão digital avançada de navegador para Chrome e Firefox | ✅ Estável |
| **Manipulação de JavaScript** | Melhor interpretador JS (js2py como padrão) para resolução de desafios | ✅ Aprimorado |
| **Solucionadores de Captcha** | Suporte a múltiplos serviços de resolução de CAPTCHA | ✅ Estável |
# Dependências
- **Python 3.8+** (Suporte encerrado para 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` instalará as dependências do Python automaticamente. Os interpretadores e/ou motores Javascript que você decidir usar são as únicas coisas que você precisa instalar, exceto o js2py, que faz parte dos requisitos como padrão.
# Interpretadores e Motores Javascript