O FlareSolverr é uma ferramenta de código aberto para contornar os desafios do Cloudflare e a proteção do DDoS-Guard. Ele configura um servidor proxy para suas solicitações, imita o navegador Chrome para passar pelas verificações de segurança e exibe o conteúdo do site.
Neste artigo, você aprenderá a instalar o FlareSolverr e a configurar a ferramenta para raspagem da Web. Você também explorará algumas opções para contornar os desafios de segurança do site.
Implementação do FlareSolverr
O FlareSolverr oferece vários métodos de instalação. No entanto, o uso do Docker é recomendado para implementações consistentes, pois ele empacota todas as dependências e configurações no seu contêiner do Docker.
Configurando o FlareSolverr com o Docker
Com o Docker instalado no seu dispositivo, baixe a versão mais recente do FlareSolverr, disponível no DockerHub, no Registro do GitHub e nos repositórios atualizados pela comunidade. O comando shell a seguir extrai a imagem mais recente do FlareSolverr Docker:
docker pull 21hsmw/flaresolverr:nodriver
Você pode executar o comando ls da imagem do docker
para confirmar se a imagem está disponível em seu sistema:
O FlareSolverr é executado como um servidor proxy no seu dispositivo, portanto, é necessário definir as portas em que ele pode ser servido e acessado. O comando a seguir define 8191
como a porta do FlareSolverr e cria um contêiner para o serviço:
docker run -d --name flaresolverr -p 8191:8191 21hsmw/flaresolverr:nodriver
Você também pode configurar variáveis de ambiente para a execução do Docker. O FlareSolverr oferece opções de registro e monitoramento no servidor, o fuso horário e o idioma a serem usados e quaisquer mecanismos de solução de CAPTCHA que você queira usar com o seu servidor. Para os fins deste tutorial, as configurações padrão do Docker são suficientes.
Verifique se o FlareSolverr está em execução acessando http://localhost:8191
em seu navegador:
Obtenção de pré-requisitos
Este tutorial foi criado para um ambiente Python. Além de instalar o FlareSolverr e o Docker, talvez você precise instalar alguns pacotes Python, como o Beautiful Soup.
Leia mais sobre raspagem da Web com a BeautifulSoup aqui.
Extração de dados com o FlareSolverr
Observação: Sempre cumpra os termos de serviço de qualquer site do qual esteja extraindo dados. O uso responsável de dados disponíveis publicamente pode ser aplicado com proibições de IP e outras consequências legais.
A raspagem com o FlareSolverr é muito semelhante ao seu processo de raspagem normal, com o site de destino e os parâmetros de solicitação indo para o servidor FlareSolverr. O servidor inicia uma instância do navegador com os parâmetros do seu site e aguarda até que o desafio do Cloudflare seja aprovado antes de enviar o conteúdo do site de volta para você. Você pode enviar solicitações ao seu servidor FlareSolverr por meio de suas execuções curl, scripts Python e programas de terceiros.
É possível verificar se um site é protegido pela Cloudflare realizando pesquisas em seu código HTML, cabeçalhos ou registros DNS, que teriam referências à Cloudflare. Você também pode usar ferramentas de terceiros, como o Check for Cloudflare:
Vamos testar o processo do FlareSolverr com o Python. Crie um arquivo Python em seu ambiente e copie o seguinte script. Esse script de amostra recupera o conteúdo HTML de um site protegido pelo Cloudflare:
# import Requests python library
import requests
# define the payload for your request execution
url = "http://localhost:8191/v1"
headers = {"Content-Type": "application/json"}
data = {
"cmd": "request.get",
"url": "https://www.datanearme.co/",
"maxTimeout": 60000
}
# structure the payload and make the request call
response = requests.post(url, headers=headers, json=data)
# print the request codes
print("Status:", response.json().get('status', {}))
print("Status Code:", response.status_code)
print("FlareSolverr message:", response.json().get('message', {}))
Esse script envia uma solicitação ao seu servidor FlareSolverr para extrair o site Temu. O FlareSolverr detecta um desafio do Cloudflare no site de destino, resolve o desafio e, em seguida, envia de volta o conteúdo HTML e as informações da sessão.
Para executar seu script Python, você pode usar o comando da CLI python3 .py
:
A obtenção de um desafio do Cloudflare pode depender do seu IP e das medidas tomadas pelo site que você está acessando.
Com o desafio do Cloudflare contornado, você pode analisar o conteúdo HTML normalmente com o Beautiful Soup ou outras bibliotecas Python.
Certifique-se de que o pacote Python esteja instalado em seu ambiente. Você pode usar o gerenciador de pacotes pip para instalar, com o comando pip install bs4
.
Vamos examinar o processo de raspagem. Comece obtendo as tags HTML corretas para as informações necessárias. Aqui estão o título do artigo e o nome do autor:
Usando essas informações, você pode escrever um script para analisar os dados usando as tags:
# import python libraries
import requests
from bs4 import BeautifulSoup
# define the payload for your request execution
url = "http://localhost:8191/v1"
headers = {"Content-Type": "application/json"}
data = {
"cmd": "request.get",
"url": "https://www.datanearme.co/",
"maxTimeout": 60000
}
# structure the payload and make the request call
response = requests.post(url, headers=headers, json=data)
# print the request codes
print("Status:", response.json().get('status', {}))
print("Status Code:", response.status_code)
print("FlareSolverr message:", response.json().get('message', {}))
# parse logic
page_content = response.json().get('solution', {}).get('response', '')
soup = BeautifulSoup(page_content, 'html.parser')
# find the div with class 'space-y-3'
target_div = soup.find('div', class_='space-y-3')
# article author
spans = target_div.find_all('span')
span_element = spans[-1]
span_text = span_element.get_text(strip=True)
# article title
h2_element = target_div.find('h2', class_=['font-semibold', 'font-poppins'])
h2_text = h2_element.get_text(strip=True)
print(f"article author: ",span_text, " article title: ", h2_text)
Esse script inicialmente ignora o desafio do Cloudflare do site, retorna o conteúdo HTML e o analisa com o Beautiful Soup para obter as informações que você deseja.
Execute o arquivo Python atualizado com o comando da CLI python .py
:
O FlareSolverr é uma ferramenta flexível que pode ser integrada ao seu processo de raspagem e dimensionada para se adequar a casos de uso mais complexos. Para sites com proibições e restrições geográficas, você também pode usar o FlareSolverr com recursos de suporte a proxy. Você explorará como isso funciona na próxima seção.
Uso de proxies com o FlareSolverr
A utilização de proxies em sua estratégia de raspagem da Web aumenta a eficiência e permite a raspagem sustentável. Os proxies permitem evitar restrições geográficas e proibições de IP e mascaram sua identidade na Web para melhorar o anonimato. Os proxies também podem ajudar diretamente a dimensionar suas operações de raspagem com solicitações simultâneas que permitem que você permaneça dentro dos limites de taxa. Dependendo da qualidade dos seus proxies, suas solicitações podem imitar melhor o comportamento real do usuário e parecer legítimas para os monitores do site.
Com base no uso e na funcionalidade, você pode ter proxies móveis, residenciais e de data center. Um proxy móvel utiliza endereços IP reais atribuídos por empresas de telecomunicações para rotear seu tráfego por meio de redes de operadoras móveis (3G, 4G, 5G). Com milhares de usuários compartilhando o mesmo IP em momentos diferentes, é difícil identificar esse tipo de proxy para um usuário específico e é improvável que ele acione CAPTCHA, Cloudflare ou outros desafios de segurança. No entanto, ele pode ser caro e mais lento do que outras categorias de proxy.
O proxy residencial é outra categoria de proxy que utiliza IPs de usuários reais, permitindo que você oculte melhor o comportamento de raspagem. Ele também é caro, mas não tem o anonimato de usuário específico do proxy móvel; ou seja, o uso excessivo e outros comportamentos suspeitos podem fazer com que o IP residencial seja bloqueado. É melhor usado para contornar restrições geográficas e monitoramento. Os proxies de data center são proxies de nuvem ou de servidor de dados não associados a um ISP. Eles fornecem conexões de alta velocidade e baixa latência a um custo baixo, o que os torna melhores para necessidades de raspagem em massa. Eles são menos capazes de simular o comportamento do usuário real, aumentando a probabilidade de serem bloqueados por desafios de sites e recursos de limitação de taxa.
Você pode adicionar proxies às suas solicitações do FlareSolverr especificando-os na carga útil da solicitação. Proxies públicos gratuitos estão disponíveis on-line, mas para casos de uso de produção que exigem confiabilidade, os serviços de proxy gerenciados são uma opção melhor.
O script de exemplo a seguir anexa proxies rotativos da BrightData para suas solicitações do FlareSolverr:
import requests
import random
proxy_list = [
'185.150.85.170',
'45.154.194.148',
'104.244.83.140',
'58.97.241.46',
'103.250.82.245',
'83.229.13.167',
]
proxy_ip = random.choice(proxy_list)
proxies = {
'http': f'http://{proxy_ip}',
'https': f'https://{proxy_ip}',
}
payload = {
"cmd": "request.get",
"url": "https://www.datanearme.co/",
"maxTimeout": 60000
}
response = requests.post(url, headers=headers, json=data, proxies=proxies)
print("Status Code:", response.status_code)
Para produção, você pode manter uma lista maior de proxy e percorrê-la antes de cada solicitação para garantir seleções rotativas de proxy para raspagem da Web.
Gerenciamento de sessões e manipulação de cookies
A Cloudflare gera e anexa cookies ao tráfego de usuários nos sites. Isso ajuda a gerenciar o tráfego e a proteger contra solicitações maliciosas repetidas sem monopolizar os recursos da rede para cada solicitação individual. O FlareSolverr coleta e passa os dados do cookie dentro do JSON de resposta, que pode validar suas solicitações subsequentes em vez de resolver desafios individuais da Cloudflare em cada solicitação:
O FlareSolverr oferece tratamento de sessão para melhorar a consistência em várias solicitações. Quando uma sessão é criada, ela retém todos os cookies na instância do navegador até que a sessão seja destruída. Isso permite melhor escala e velocidade de resposta em suas solicitações de raspagem.
O código a seguir demonstra como criar sessões em seus scripts de código:
import requests
url = "http://localhost:8191/v1"
headers = {"Content-Type": "application/json"}
data = {
"cmd": "sessions.create",
}
response = requests.post(url, headers=headers, json=data)
print(response.text)
O comando na carga útil da solicitação é alterado para sessions.create
(em vez de requests.get
). O valor da url
não é necessário para esse comando, mas você pode definir um proxy para a sessão. Confira a estrutura de comandos do FlareSolverr para explorar outros comandos, como destruir sessão
, lista de sessões
e postar solicitações
:
Seu valor de ID de sessão pode ser usado em solicitações subsequentes, adicionando-o à carga útil:
url = "http://localhost:8191/v1"
headers = {"Content-Type": "application/json"}
data = {
"cmd": "request.get",
"url": "https://www.datanearme.co/",
"maxTimeout": 60000,
"session":"<SESSION_ID>"
}
response = requests.post(url, headers=headers, json=data)
print(response.text)
O valor de tempo limite é o tempo máximo em segundos que sua solicitação será executada. Se uma resposta não for fornecida dentro desse tempo, você receberá uma resposta de erro. Vamos dar uma olhada no script combinado da criação da sessão e do uso da ID da sessão:
import requests
import time
# creating the session
url = "http://localhost:8191/v1"
headers = {"Content-Type": "application/json"}
first_request = {
"cmd": "sessions.create",
}
first_response = requests.post(url, headers=headers, json=first_request)
session_id = first_response.json().get('session', {})
# using the session id
second_request = {
"cmd": "request.get",
"url": "https://www.datanearme.co/",
"maxTimeout": 60000,
"session":f"{session_id}"
}
second_response = requests.post(url, headers=headers, json=second_request)
print("Status:", second_response.json().get('status', {}))
Você pode encontrar todos os scripts Python neste repositório do GitHub.
Agora você já explorou como fazer solicitações com o FlareSolverr e interpretar as respostas, mas é igualmente importante entender como lidar com as falhas.
Solução de problemas de suas solicitações do FlareSolverr
A Cloudflare atualiza frequentemente seus protocolos, e as diferenças nos sites e casos de uso podem levar a um comportamento inesperado. Esta seção aborda erros comuns, como o FlareSolverr lida com eles e o que você pode fazer para resolver os problemas.
Para solucionar problemas de suas solicitações de raspagem, você deve sempre começar com o seguinte:
- Registros do FlareSolverr
Aqui estão alguns erros mais específicos e como você pode resolvê-los:
- Falhas repetidas no desafio/CAPTCHA: isso pode significar que o site marcou suas solicitações como suspeitas. Ajuste suas solicitações e troque de proxy para emular mais de perto o comportamento real do usuário. Os cookies também podem expirar, portanto, certifique-se de atualizá-los regularmente enquanto mantém suas sessões de solicitação.
- Erro de
desafio não detectado
: Isso pode ser devido a nenhum desafio estar disponível, à presença de medidas de segurança não reconhecidas que são incompatíveis com o FlareSolverr, ao uso de uma versão desatualizada do FlareSolverr ou ao desafio estar deliberadamente oculto. Você ainda poderá obter o conteúdo desejado se um desafio não for detectado, mas se não estiver funcionando, tente atualizar a versão do FlareSolverr e refaça o teste para identificar o problema. - Erro de
cookies fornecidos pelo FlareSolverr não são válidos
: esse erro ocorre quando os cookies retornados pelo FlareSolverr não funcionam corretamente. Isso geralmente ocorre devido a incompatibilidades de IP ou rede entre o Docker e o FlareSolverr, especialmente ao usar VPNs.
Você sempre pode encontrar mais informações on-line se encontrar outros problemas não mencionados aqui. Há uma grande comunidade de código aberto por trás do FlareSolverr, portanto, há uma boa possibilidade de que uma solução para qualquer problema que você tenha já esteja disponível.
Alternativas ao FlareSolverr
O FlareSolverr é uma ferramenta de código aberto projetada para usuários com habilidades técnicas para construir sobre sua base. No entanto, ela pode não estar sempre atualizada com as alterações mais recentes da Cloudflare, o que pode afetar operações sensíveis ao tempo. Desde janeiro de 2025, seus solucionadores de CAPTCHA não estão funcionando, e alguns sites apresentam desafios à Cloudflare que não podem ser contornados.
Se você precisar de uma solução para raspagem em grande escala ou para contornar o Cloudflare de forma mais robusta, as alternativas a seguir oferecem recursos adicionais e confiabilidade:
- Navegador de raspagem: Um navegador de raspagem é um navegador GUI projetado especificamente para raspagem da Web com recursos como rotação de proxy automatizada e resolução de CAPTCHA integrada. O Bright Data Scraping Browser oferece fácil integração com estruturas da Web, como Playwright, Puppeteer e Selenium, permitindo fluxos de trabalho programáticos diretamente vinculados a um ambiente de navegador interativo em escala.
- APIs do Web Scraper: As APIs do Web Scraper são estruturas já integradas aos domínios de destino, permitindo que você colete dados sob demanda sem o processo de raspagem manual. Elas são fáceis de usar, com estruturas de dados prontas e arquitetura para lidar com chamadas de dados em massa. As APIs do raspador da Web da Bright Data se conectam a vários domínios populares, como LinkedIn, Zillow, Yelp e Instagram, oferecendo coleta de dados 100% compatível.
- Conjuntos de dados sob demanda: Com os conjuntos de dados sob demanda, você obtém um serviço gerenciado para conjuntos de dados prontos para uso. Isso oferece um caminho sem trabalho para obter os dados de que você precisa, já estruturados e formatados para suas operações de dados. A Bright Data oferece um amplo mercado para vários conjuntos de dados populares, como perfis do LinkedIn e do Instagram, produtos do Walmart e da Shein e listagens do Booking.com. Esses conjuntos de dados são mantidos e atualizados regularmente, com planos de assinatura para acesso aos dados.
- Solução de raspagem gerenciada: Por fim, as soluções gerenciadas completas podem simplificar o processo de raspagem com recursos para cuidar da maioria dos recursos de segurança do site, como renderização de javascript, impressões digitais do navegador, captcha e localização geográfica. Por exemplo, o Web Unlocker da BrightData pode desbloquear qualquer domínio.
Conclusão
Neste artigo, você explorou o FlareSolverr e como ele pode contornar os desafios do Cloudflare. Você configurou o FlareSolverr para raspagem multiproxy e manutenção do acesso aos dados ao longo de várias solicitações. Por fim, você aprendeu a solucionar problemas de suas solicitações do FlareSolverr e os erros comuns que pode enfrentar.
Se estiver procurando uma ferramenta de coleta de dados consistente e em conformidade, nosso navegador de raspagem e nossos raspadores da Web oferecem ferramentas otimizadas para seus processos de raspagem. Você obtém serviços gerenciados com proxies confiáveis, uma interface de usuário intuitiva e taxas de sucesso de quase 100% na raspagem da Web.
Inscreva-se agora e comece seu teste gratuito!
Não é necessário cartão de crédito