pt
English
Español
中國人
Tiếng Việt
Deutsch
Українська
Français
भारतीय
Türkçe
한국인
Italiano
Gaeilge
اردو
Indonesia
Polski O CloudScraper é um módulo para automatizar pedidos HTTP e interagir com recursos Web que aplicam validação de tráfego adicional, como o Cloudflare. O proxy CloudScraper ajuda a gerenciar conexões, definir parâmetros de rede para solicitações e manter o acesso estável em sites que inspecionam IPs, cabeçalhos e comportamento do cliente.
O CloudScraper é implementado em Python e construído sobre a biblioteca requests. Ao contrário de um cliente HTTP básico, ele pode lidar automaticamente com páginas de desafio com pontos de verificação JavaScript emulando o comportamento do navegador. O módulo adiciona os cabeçalhos necessários, gere cookies, segue redireccionamentos e pode lidar com mecanismos de proteção comuns - desde que não envolvam um CAPTCHA.
Na prática, os programadores utilizam-na frequentemente como uma API de raspagem da Web para simplificar os processos de extração de dados, minimizando as proibições de IP.
A utilização do proxy CloudScraper permite-lhe:
A biblioteca é executada sem abrir um navegador completo e pode, em alguns casos, substituir ferramentas sem cabeça como o Puppeteer ou o Playwright.
A Cloudflare emprega várias camadas de proteção contra o tráfego automatizado, coletivamente chamadas de proteção anti-bot. Elas incluem desafios de JavaScript, redirecionamentos HTTP, verificações de cabeçalho, tokens de cookie e limites baseados em IP. O CloudScraper detecta o mecanismo de validação e aplica uma estratégia de tratamento adequada.
É multiplataforma, atualizado regularmente e compatível com Windows, Linux e macOS. Funciona em ambientes virtuais e em servidores sem uma interface gráfica. Também permite que os programadores integrem rapidamente proxies para um melhor controlo de acesso e fiabilidade.
Para começar, é necessário ter a versão 3.6 ou superior do Python instalada. Usar o CloudScraper em Python é conveniente porque o módulo pode ser conectado com um único comando e está imediatamente pronto para funcionar em qualquer ambiente.
A ferramenta é instalada através do gestor de pacotes Python padrão - pip, que permite descarregar e atualizar bibliotecas de terceiros a partir do repositório oficial PyPI. Se estiver a utilizar um ambiente virtual, certifique-se de que este está ativado antes da instalação.
pip install cloudscraper
Durante a instalação, a biblioteca puxa automaticamente as principais dependências: requests, pyparsing e requests-toolbelt. Se necessário, elas podem ser atualizadas manualmente:
pip install --upgrade requests pyparsing requests-toolbelt
Para verificar se a instalação foi concluída corretamente, pode executar o seguinte script de teste:
import cloudscraper
scraper = cloudscraper.create_scraper()
response = scraper.get("https://www.cloudflare.com")
print(response.status_code)
Se o script devolver o código de estado 200, 301 ou 302, a ligação foi bem sucedida e foi recebida uma resposta do servidor.
O exemplo abaixo demonstra como utilizar o módulo para enviar uma tentativa para uma página protegida, especificando parâmetros de ambiente que correspondem ao navegador Chrome no Windows.
Isto é necessário para a geração correta de cabeçalhos e para aumentar as hipóteses de estabelecer uma sessão com êxito:
import cloudscraper
url = "https://example.com/protected"
scraper = cloudscraper.create_scraper(
browser={
'browser': 'chrome',
'platform': 'windows',
'mobile': False
}
)
response = scraper.get(url)
if response.status_code == 200:
print("Access granted.")
print(response.text[:500])
elif response.status_code == 403:
print("Request denied. Check proxy or headers.")
else:
print(f"Response code: {response.status_code}")
Com base nestes parâmetros, o módulo substitui o User-Agent adequado e outros cabeçalhos-chave, o que permite que o desafio seja tratado corretamente e que o conteúdo da página seja recuperado.
Se forem usados servidores proxy do CloudScraper, ele aceita seus parâmetros em um formato padrão - como um dicionário de proxies, semelhante ao formato usado pela biblioteca de solicitações. Isso permite que os desenvolvedores usem o mesmo proxy para várias solicitações, garantindo o tratamento consistente do IP e a estabilidade da sessão.
Exemplo de como passar parâmetros do servidor proxy ao executar um pedido:
proxies = {
'http': 'http://user:pass@proxy.server:port',
'https': 'http://user:pass@proxy.server:port'
}
scraper = cloudscraper.create_scraper()
response = scraper.get(url, proxies=proxies)
Os servidores proxy CloudScraper são recomendados quando se trabalha com recursos que restringem o acesso por IP, região ou frequência de chamadas. Eles ajudam a distribuir a carga, simulam o tráfego da região desejada e melhoram a estabilidade do acesso.
Apesar dos mecanismos avançados de interação com a proteção, o CloudScraper não trata automaticamente os captchas. Isso se aplica ao hCaptcha interativo e ao reCAPTCHA gráfico. A biblioteca não reconhece o seu conteúdo, pelo que não pode gerar respostas a esses formulários.
Ao recuperar uma página com um captcha, o módulo devolve o HTML que contém o elemento correspondente, por exemplo:
<iframe src="https://www.google.com/recaptcha/api2/anchor?...">
Neste caso, existem duas abordagens possíveis para a solução:
captcha_data = {
'method': 'userrecaptcha',
'googlekey': 'SITE_KEY',
'pageurl': 'https://example.com',
'key': 'API_KEY_ANTICAPTCHA'
} Se um captcha aparecer mesmo com uma taxa de pedidos moderada, faz sentido:
A qualidade do endereço IP é um fator crítico quando se trabalha com recursos protegidos. Os proxies fiáveis para o CloudScraper (residencial, móvel, ISP ou centro de dados) ajudam a reduzir a probabilidade de captchas e a garantir um desempenho estável da sessão. Para saber as diferenças entre os vários tipos de proxy e como escolher a melhor solução para uma tarefa específica, leia este artigo.
O módulo resolve muitas tarefas relacionadas com o contorno do Cloudflare, mas em alguns casos pode ser necessária uma abordagem diferente, mais especializada ou adaptada a condições de proteção específicas.
Eis algumas alternativas comuns:
Comparação de soluções:
| Funcionalidade / Ferramenta | CloudScraper | Requests+cookies | Puppeteer | Playwright |
|---|---|---|---|---|
| Complexidade da aplicação | Baixa | Médio | Elevado | Elevado |
| Velocidade de desempenho | Elevado | Elevado | Médio | Médio |
| Resistência aos controlos | Médio | Baixa | Elevado | Máximo |
| Integração do serviço Captcha | Sim (via API) | Não | Sim (através de plugins/API) | Sim (através de plugins/API) |
| Execução de JavaScript | Parcial | Não | Sim | Sim |
| Consumo de recursos | Baixa | Baixa | Elevado | Elevado |
Mesmo com uma configuração correta, o CloudScraper pode deparar-se com problemas técnicos que são fáceis de diagnosticar e resolver quando se compreendem as causas.
Ao processar um pedido, pode aparecer uma mensagem indicando um problema com o certificado SSL. Isto aponta para uma falha na sua verificação - na maioria das vezes devido a um certificado expirado ou a uma data de sistema incorrecta.
Como resolver o problema:
scraper.get(url, verify=False)
O código mostra como contornar temporariamente o erro de verificação SSL, desactivando a validação do certificado. Isso é útil para diagnósticos, mas não é seguro para uso permanente.
O servidor rejeita uma chamada com o erro 403, mesmo que o URL esteja acessível no browser. Isto acontece quando a proteção identifica as tentativas como automatizadas.
Como resolver o problema:
mport cloudscraper
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.199 Safari/537.36',
'Referer': 'https://example.com',
'Accept-Language': 'en-US,en;q=0.9',
'Accept-Encoding': 'gzip, deflate, br'
}
scraper = cloudscraper.create_scraper()
response = scraper.get("https://example.com", headers=headers)
print(response.status_code)
Nota: Se o User-Agent for definido manualmente através dos cabeçalhos, o parâmetro do browser ao criar a sessão não é necessário - será substituído.
Deve também verificar o proxy em utilização e, se necessário, alterar o IP ou selecionar um servidor intermédio de outra região.
O módulo não pode processar a página de desafio devolvida, mostrando um HTML vazio ou uma mensagem de erro. Motivo - um tipo de proteção não suportado pela biblioteca (por exemplo, hCaptcha ou Turnstile).
Como resolver o problema:
Se isto não ajudar, recomenda-se que mude para navegadores sem cabeça.
Ao enviar uma chamada, observam-se redireccionamentos repetidos entre páginas. O conteúdo não é carregado e a linha de pedido muda várias vezes sem chegar à página de destino.
Neste caso, o utilizador é redireccionado para a página de verificação porque a passagem da proteção não está concluída. Isto pode acontecer quando os cookies não são guardados entre tentativas ou quando a sessão se perde durante a navegação.
Passos para resolver:
import cloudscraper
scraper = cloudscraper.create_scraper()
response1 = scraper.get("https://example.com/start")
response2 = scraper.get("https://example.com/continue")
print(response2.status_code) import time
import cloudscraper
scraper = cloudscraper.create_scraper()
response1 = scraper.get("https://example.com/start")
time.sleep(2)
response2 = scraper.get("https://example.com/continue") A adição de um atraso ajuda a evitar situações em que o servidor classifica o tráfego como automatizado devido a uma frequência de chamadas demasiado elevada. Isto é especialmente importante quando se utiliza o proxy CloudScraper: os atrasos melhoram a estabilidade da sessão e reduzem a probabilidade de acionar filtros.
Algumas tentativas são bem sucedidas, enquanto outras falham com erros de ligação ou tempos limite. Isto aponta frequentemente para IPs de baixa qualidade.
Mitigações:
O registo ajuda a seguir o funcionamento do módulo quando se liga através de um servidor proxy (pedidos, códigos de estado, tipos de erro). Em Python, isto é feito com o módulo de registo padrão, por exemplo:
import logging
import cloudscraper
# basic file logging
logging.basicConfig(
filename="scraper.log",
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(message)s"
)
scraper = cloudscraper.create_scraper()
try:
response = scraper.get("https://example.com")
logging.info(f"Request successful, status: {response.status_code}")
except Exception as e:
logging.error(f"Request error: {e}")
Isso produz um log de erros e tentativas bem-sucedidas que permite determinar qual proxy do CloudScraper falhou e quando.
Se um proxy começar a devolver 403, timeout, erros SSL, etc., deve implementar Rotação IP. Utilizar um pool de proxy e recorrer ao servidor seguinte disponível em caso de falha, por exemplo:
import cloudscraper
proxies_list = [
"http://user:pass@proxy1:port",
"http://user:pass@proxy2:port",
"http://user:pass@proxy3:port"
]
url = "https://example.com"
scraper = cloudscraper.create_scraper()
for proxy in proxies_list:
try:
response = scraper.get(url, proxies={"http": proxy, "https": proxy}, timeout=10)
if response.status_code == 200:
print("Success via:", proxy)
break
except Exception as e:
print("Error on", proxy, "-", e)
Como resultado, os pedidos são executados através do primeiro proxy disponível do conjunto, o que ajuda a evitar endereços que não estão a funcionar.
A utilização do CloudScraper Proxy ajuda a automatizar as chamadas para sites com proteção ao nível da ligação. Os erros geralmente resultam de proxies instáveis, altas taxas de tentativas ou CAPTCHAs. As soluções práticas incluem a utilização de IPs fiáveis, a adaptação de cabeçalhos e a gestão da frequência dos pedidos.
Não. O CloudScraper opera no nível da solicitação HTTP e não reproduz o comportamento completo do navegador. Ele pode se mascarar com cabeçalhos, mas não pode emular o comportamento do usuário ou as impressões digitais do navegador. Para verificações orientadas por comportamento, use ferramentas sem cabeçalho, como o Playwright ou o Puppeteer.
Sim. Isole as sessões, utilize um pool de proxy e trate as excepções corretamente. Crie uma sessão dedicada por thread. Em erros de ligação (timeout, ProxyError, 403 Forbidden, 429 Too Many Requests), rodar os proxies.
O CloudScraper é uma boa opção para projectos de pequena e média dimensão em que a integração rápida é importante. Para sistemas de missão crítica e de alta carga, considere soluções mais escaláveis (por exemplo, Playwright) ou uma pilha personalizada baseada em navegador.
Comentários: 0