CAPSOLVER
Blog
Como Resolver o Cloudflare em PHP

Como Resolver o Cloudflare em PHP

Logo of CapSolver

Aloísio Vítor

Image Processing Expert

26-Nov-2024

O Cloudflare pode detectar seu scraper PHP? Existe uma maneira de resolver suas poderosas defesas sem ser bloqueado? O Cloudflare, conhecido por suas fortes medidas de segurança, utiliza ferramentas como o CAPTCHA Turnstile e o Gerenciamento de Bots para filtrar bots e atividades suspeitas. Essas proteções apresentam desafios significativos para scrapers PHP, pois dependem fortemente da detecção de padrões e do bloqueio de qualquer coisa que pareça automatizada.
Vamos mergulhar em métodos que podem aumentar suas chances de raspar sites protegidos pelo Cloudflare usando PHP, lembrando que nenhuma solução é garantida contra este sistema de segurança em constante evolução.

O que é o Cloudflare?

O Cloudflare é uma rede de entrega de conteúdo (CDN) e segurança amplamente utilizada, projetada para proteger sites de várias ameaças online, incluindo bots, spammers e ataques de negação de serviço (DoS). Ele serve como um intermediário entre o servidor de um site e seus visitantes, filtrando solicitações com base em uma ampla gama de critérios para garantir que apenas o tráfego legítimo chegue ao servidor. A robusta rede e as ferramentas de segurança do Cloudflare ajudam a garantir que os sites carreguem mais rápido e permaneçam protegidos contra interações indesejadas ou nocivas.

Por que o Cloudflare é desafiador para scrapers PHP?

O Cloudflare tornou-se um desafio comum para scrapers PHP devido aos seus sofisticados sistemas de detecção de bots. Quando detecta atividade potencialmente automatizada ou suspeita, o Cloudflare pode implantar várias medidas de segurança para verificar a legitimidade do visitante. Essas medidas incluem:

Desafios JavaScript

O Cloudflare frequentemente apresenta desafios baseados em JavaScript (também conhecidos como modo JavaScript "Sob Ataque"), que exigem que os usuários executem JavaScript antes de acessar o site. Isso é particularmente desafiador para scrapers PHP, pois o PHP não lida nativamente com a execução de JavaScript. As soluções geralmente envolvem a integração com navegadores headless ou outras ferramentas que podem simular a execução de JavaScript.

CAPTCHA Turnstile e outros CAPTCHAs

Os CAPTCHAs são outra camada de segurança que o Cloudflare emprega para verificar a interação humana. O CAPTCHA Turnstile, em particular, é usado para impedir que bots automatizados acessem páginas protegidas. Resolver esses CAPTCHAs requer serviços de resolução de CAPTCHA ou intervenção manual, pois o PHP sozinho não tem a capacidade de interpretar e responder a CAPTCHAs.

Gerenciamento de Bots

O sistema avançado de gerenciamento de bots do Cloudflare usa aprendizado de máquina para detectar padrões e comportamentos típicos de bots. Ao rastrear detalhes como frequência de solicitação, consistência do agente do usuário e reputação de IP, o Cloudflare pode identificar e bloquear bots com alto grau de precisão. Isso torna especialmente difícil para scrapers que enviam solicitações de alta frequência ou repetitivas.

Bloqueio baseado em IP e limitação de taxa

O Cloudflare monitora endereços IP e aplica limitação de taxa para detectar e restringir tráfego suspeito. Para scrapers, isso significa que solicitações repetidas do mesmo endereço IP provavelmente serão sinalizadas e bloqueadas. Evitar isso requer rotação frequente de IP por meio de proxies ou serviços de proxy rotativos, o que pode adicionar complexidade e custo.

Gerenciamento de sessão e cookies

Para verificar ainda mais os usuários, o Cloudflare rastreia sessões e cookies. Os scrapers PHP devem gerenciar cookies e sessões de forma consistente para manter uma única sessão de usuário em todas as solicitações, o que pode ser tecnicamente desafiador de implementar sem recursos avançados de manipulação de cookies.

Em resumo, as defesas multicamadas do Cloudflare são projetadas especificamente para detectar e evitar tráfego automatizado, tornando os esforços de scraping PHP particularmente desafiadores.

Como resolver o Cloudflare em PHP

O Cloudflare apresenta desafios significativos para web scraping devido às suas robustas medidas de detecção de bots e segurança, como desafios JavaScript, CAPTCHAs e sistemas avançados de gerenciamento de bots. Ao tentar raspar sites protegidos pelo Cloudflare usando PHP, os desenvolvedores geralmente enfrentam obstáculos como execução de JavaScript, tratamento de sessão e resolução de CAPTCHA.

Tentativa 1: Usando automação com Selenium Stealth

Uma abordagem popular para resolver as defesas do Cloudflare é usar navegadores headless e ferramentas de automação, como o Selenium Stealth. O Selenium Stealth é uma camada de aprimoramento para o Selenium WebDriver, projetada para reduzir a detecção simulando um comportamento de navegação mais semelhante ao humano.

- Código de exemplo: Selenium Stealth em PHP

php Copy
// Carregar bibliotecas necessárias
require_once 'vendor/autoload.php';

use Facebook\WebDriver\Remote\RemoteWebDriver;
use SapiStudio\SeleniumStealth\SeleniumStealth;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Chrome\ChromeOptions;

// URL do servidor Selenium
$serverUrl = 'http://localhost:4444';

// Definir recursos e opções do navegador
$chromeOptions = new ChromeOptions();
$chromeOptions->addArguments(['--headless', '--disable-gpu', '--no-sandbox']); // Modo Headless para automação

$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(ChromeOptions::CAPABILITY_W3C, $chromeOptions);

// Inicializar WebDriver
$driver = RemoteWebDriver::create($serverUrl, $capabilities);

// Aprimorar WebDriver com Selenium Stealth
$stealthDriver = (new SeleniumStealth($driver))->usePhpWebriverClient()->makeStealth();

// Maximizar a janela do navegador
$stealthDriver->manage()->window()->maximize();

// Navegar para a URL de destino
$url = 'https://www.scrapingcourse.com/cloudflare-challenge';
$stealthDriver->get($url);

// Recuperar e imprimir a fonte da página
$html = $stealthDriver->getPageSource();
echo $html;

// Fechar a sessão do navegador
$stealthDriver->quit();

Desafios do uso do Selenium Stealth

Embora o Selenium Stealth seja uma abordagem promissora, ele apresenta desvantagens significativas:

  1. Alto risco de detecção: Os mecanismos avançados de detecção do Cloudflare ainda podem sinalizar navegadores baseados em Selenium como bots, especialmente sob uso intenso.
  2. Problemas de manipulação de elementos: Identificar e interagir com elementos da página para resolver desafios pode ser pouco confiável.
  3. Sobrecargas de desempenho: Executar vários navegadores headless simultaneamente consome uma grande quantidade de recursos do sistema, tornando difícil escalar.

Embora o Selenium Stealth possa resolver defesas simples, não é a melhor solução para lidar com as medidas de segurança sofisticadas do Cloudflare.

Tentativa 2: Usando a API CapSolver

CapSolver oferece uma abordagem robusta e baseada em API para resolver desafios do Cloudflare. Em vez de depender de automação pesada de recursos, ela utiliza uma poderosa tecnologia de resolução de CAPTCHA para lidar com desafios do Cloudflare como CAPTCHA Turnstile e desafios baseados em JavaScript.

Benefícios do uso do CapSolver

  1. Eficiência: Resolva CAPTCHAs e outros desafios rapidamente sem intervenção manual.
  2. Escalabilidade: Adequado para operações em larga escala, pois evita a sobrecarga de executar vários navegadores.
  3. Simplicidade: Fornece integração direta com PHP e outras linguagens de programação.
  4. Confiabilidade: Lidar até mesmo com os desafios mais complexos com alta precisão.

Código de exemplo: CapSolver em PHP

O código a seguir demonstra como usar o CapSolver para resolver desafios do Cloudflare e fazer login em um site protegido.

php Copy
require 'vendor/autoload.php';

use GuzzleHttp\Client;

define("CAPSOLVER_API_KEY", "CAI-API_KEY");
define("PAGE_URL", "https://dash.cloudflare.com/login");
define("SITE_KEY", "0x4AAAAAAAJel0iaAR3mgkjp");

function callCapsolver() {
    $client = new Client();
    $data = [
        "clientKey" => CAPSOLVER_API_KEY,
        "task" => [
            "type" => "AntiTurnstileTaskProxyLess",
            "websiteURL" => PAGE_URL,
            "websiteKey" => SITE_KEY,
            "metadata" => ["action" => "login"]
        ]
    ];

    try {
        // Criar tarefa
        $response = $client->post('https://api.capsolver.com/createTask', [
            'json' => $data
        ]);
        $resp = json_decode($response->getBody(), true);
        $taskId = $resp['taskId'] ?? null;

        if (!$taskId) {
            echo "Nenhum taskId encontrado: " . $response->getBody() . PHP_EOL;
            return null;
        }

        echo "Criado taskId: $taskId" . PHP_EOL;

        // Consultar o resultado da tarefa
        while (true) {
            sleep(1); // Esperar 1 segundo
            $resultResponse = $client->post('https://api.capsolver.com/getTaskResult', [
                'json' => [
                    "clientKey" => CAPSOLVER_API_KEY,
                    "taskId" => $taskId
                ]
            ]);
            $result = json_decode($resultResponse->getBody(), true);
            $status = $result['status'] ?? '';

            if ($status === "ready") {
                echo "Resolvido com sucesso: " . $resultResponse->getBody() . PHP_EOL;
                return $result['solution'] ?? null;
            }

            if ($status === "failed" || isset($result['errorId'])) {
                echo "Falha: " . $resultResponse->getBody() . PHP_EOL;
                return null;
            }
        }
    } catch (Exception $e) {
        echo "Erro: " . $e->getMessage() . PHP_EOL;
        return null;
    }
}

function login($token, $userAgent) {
    $client = new Client();
    $headers = [
        'Cookie' => "cf_clearance=$token",
        'Host' => 'dash.cloudflare.com',
        'User-Agent' => $userAgent
    ];

    $data = [
        "cf_challenge_response" => $token,
        "email" => "[email protected]",
        "password" => "example_password"
    ];

    try {
        $response = $client->post('https://dash.cloudflare.com/api/v4/login', [
            'headers' => $headers,
            'form_params' => $data
        ]);

        echo "Código de status da resposta de login: " . $response->getStatusCode() . PHP_EOL;
        if ($response->getStatusCode() !== 403) {
            echo "Resposta de login: " . $response->getBody() . PHP_EOL;
        }
    } catch (Exception $e) {
        echo "Erro de login: " . $e->getMessage() . PHP_EOL;
    }
}

function run() {
    $solution = callCapsolver();
    $token = $solution['token'] ?? null;

    if ($token) {
        login($token, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36");
    }
}

run();

Por que escolher o CapSolver em vez do Selenium Stealth?

  1. Eficiência de recursos: Não há necessidade de executar um navegador headless, reduzindo os custos do servidor e o consumo de memória.
  2. Facilidade de implementação: Integração simples da API sem configurações complexas do navegador.
  3. Taxa de sucesso: Maior confiabilidade na prevenção das defesas avançadas do Cloudflare.
  4. Escalonável para empresas: Ideal para cenários que exigem grandes volumes de resolução de CAPTCHA.

Para mais detalhes sobre o CapSolver e seus recursos, visite a documentação do CapSolver.

Solicite seu Código Bônus para as principais soluções de captcha; CapSolver: WEBS. Após resgatá-lo, você receberá um bônus extra de 5% após cada recarga, Ilimitado

Considerações finais

As defesas do Cloudflare estão em constante evolução, tornando cada vez mais difícil para os scrapers PHP resolvê-las. Embora ferramentas de automação como o Selenium Stealth possam lidar com cenários básicos, o CapSolver fornece uma solução mais robusta, eficiente e escalonável para lidar com desafios avançados. Com a API do CapSolver, você pode garantir resultados mais rápidos e confiáveis sem as dores de cabeça de gerenciar a automação complexa do navegador.

Declaração de Conformidade: As informações fornecidas neste blog são apenas para fins informativos. A CapSolver está comprometida em cumprir todas as leis e regulamentos aplicáveis. O uso da rede CapSolver para atividades ilegais, fraudulentas ou abusivas é estritamente proibido e será investigado. Nossas soluções de resolução de captcha melhoram a experiência do usuário enquanto garantem 100% de conformidade ao ajudar a resolver dificuldades de captcha durante a coleta de dados públicos. Incentivamos o uso responsável de nossos serviços. Para mais informações, visite nossos Termos de Serviço e Política de Privacidade.

Mais

Como Resolver CAPTCHAs de Imagem em Web Scraping: Um Guia Completo para 2025
Como Resolver CAPTCHAs de Imagem em Web Scraping: Um Guia Completo para 2025

Aprenda a resolver CAPTCHAs de imagem de forma eficaz com o CapSolver em 2025

Logo of CapSolver

Adélia Cruz

23-Jan-2025

Raspagem da Web é Legal? O Guia Completo para 2025
Web Scraping é Legal? O Guia Completo para 2025

Desafios Legais do Web Scraping em 2025: Regulamentações-chave, Conformidade e Estudos de Caso

Logo of CapSolver

Adélia Cruz

23-Jan-2025

Top 5 resolvedores de Captcha para reconhecimento de reCAPTCHA em 2025
Top 5 resolvedores de Captcha para reconhecimento de reCAPTCHA em 2025

Explore os 5 principais solucionadores de CAPTCHA de 2025, incluindo o CapSolver baseado em IA para reconhecimento rápido de reCAPTCHA. Compare velocidade, preços e precisão aqui.

Logo of CapSolver

Ethan Collins

23-Jan-2025

O que é uma chave de site reCAPTCHA e como encontrá-la?
O que é uma chave de site reCAPTCHA e como encontrá-la?

Aprenda como encontrar uma chave de site reCAPTCHA manualmente ou com ferramentas como Capsolver. Corrija problemas comuns e automatize a resolução de CAPTCHA para desenvolvedores e web scraping.

Logo of CapSolver

Adélia Cruz

23-Jan-2025

Como contornar o desafio do Cloudflare durante a raspagem da web em 2025
Como contornar o desafio do Cloudflare durante a raspagem da web em 2025

Aprenda a contornar o Cloudflare Challenge e o Turnstile em 2025 para web scraping sem problemas. Descubra a integração do Capsolver, dicas de impressão digital TLS e correções para erros comuns para evitar o inferno do CAPTCHA. Economize tempo e escale sua extração de dados.

Logo of CapSolver

Adélia Cruz

23-Jan-2025

O que é o Reconhecimento reCAPTCHA? Um Guia para Iniciantes
O que é o Reconhecimento reCAPTCHA? Um Guia para Iniciantes

Com dificuldades com grids de imagem do reCAPTCHA? Descubra como o reconhecimento com IA da Capsolver resolve desafios "Selecione todos" instantaneamente. Aprenda integração de API, extensões de navegador e dicas profissionais para automatizar a resolução de CAPTCHA com mais de 95% de precisão.

Logo of CapSolver

Adélia Cruz

23-Jan-2025