Crawl4AI
Crawl4AI é uma ferramenta de rastreamento e raspagem web de código aberto, projetada para se integrar perfeitamente com Large Language Models (LLMs), Agentes de IA e pipelines de dados. Ele permite a extração de dados em alta velocidade e em tempo real, mantendo-se flexível e fácil de implantar.
Principais recursos para raspagem web alimentada por IA incluem:
- Construído para LLMs: Gera Markdown estruturado otimizado para Geração Aumentada por Recuperação (RAG) e ajuste fino (fine-tuning).
- Controle flexível do navegador: Suporta gerenciamento de sessão, uso de proxy e hooks personalizados.
- Inteligência heurística: Usa algoritmos inteligentes para otimizar a análise de dados.
- Totalmente de código aberto: Nenhuma chave de API é necessária; implantável via Docker e plataformas de nuvem.
Saiba mais na documentação oficial.
Por Que Usar o Scrapeless com o Crawl4AI?
O Crawl4AI se destaca na extração estruturada de dados web e suporta análise impulsionada por LLM e raspagem baseada em padrões. No entanto, ainda pode enfrentar desafios ao lidar com mecanismos anti-bot avançados, como:
- Navegadores locais sendo bloqueados por Cloudflare, AWS WAF ou reCAPTCHA
- Gargalos de desempenho durante o rastreamento concorrente em larga escala, com inicialização lenta do navegador
- Processos de depuração complexos que dificultam o rastreamento de problemas
O Scrapeless Cloud Browser resolve esses problemas perfeitamente:
- Bypass anti-bot com um clique: Lida automaticamente com reCAPTCHA, Cloudflare Turnstile/Challenge, AWS WAF e muito mais. Combinado com o poder de extração estruturada do Crawl4AI, ele aumenta significativamente as taxas de sucesso.
- Escalabilidade concorrente ilimitada: Inicie 50 a 1000+ instâncias de navegador por tarefa em segundos, removendo os limites de desempenho do rastreamento local e maximizando a eficiência do Crawl4AI.
- Redução de custo de 40% a 80%: Em comparação com serviços de nuvem semelhantes, os custos totais caem para apenas 20% a 60%. O preço de pagamento conforme o uso o torna acessível mesmo para projetos de pequena escala.
- Ferramentas visuais de depuração: Use o Session Replay e o Live URL Monitoring para observar as tarefas do Crawl4AI em tempo real, identificar rapidamente as causas das falhas e reduzir a sobrecarga de depuração.
- Integração de custo zero: Compatível nativamente com Playwright (usado pelo Crawl4AI), exigindo apenas uma linha de código para conectar o Crawl4AI à nuvem — sem necessidade de refatoração de código.
- Edge Node Service (ENS): Múltiplos nós globais oferecem velocidade de inicialização e estabilidade 2 a 3 vezes mais rápidas do que outros navegadores de nuvem, acelerando a execução do Crawl4AI.
- Ambientes isolados e sessões persistentes: Cada perfil Scrapeless é executado em seu próprio ambiente com login persistente e isolamento de identidade, evitando interferência de sessão e melhorando a estabilidade em larga escala.
- Gerenciamento flexível de impressões digitais: O Scrapeless pode gerar impressões digitais de navegador aleatórias ou usar configurações personalizadas, reduzindo efetivamente os riscos de detecção e melhorando a taxa de sucesso do Crawl4AI.
Começando
1. Obtenha Sua Chave de API Scrapeless
Faça login no Scrapeless e obtenha seu API Token.

2. Início Rápido
O exemplo abaixo mostra como conectar de forma rápida e fácil o Crawl4AI ao Scrapeless Cloud Browser:
Para mais recursos e instruções detalhadas, consulte a introdução.
scrapeless_params = {
"token": "get your token from https://www.scrapeless.com",
"sessionName": "Scrapeless browser",
"sessionTTL": 1000,
}
query_string = urlencode(scrapeless_params)
scrapeless_connection_url = f"wss://browser.scrapeless.com/api/v2/browser?{query_string}"
AsyncWebCrawler(
config=BrowserConfig(
headless=False,
browser_mode="cdp",
cdp_url=scrapeless_connection_url
)
)
Após a configuração, o Crawl4AI se conecta ao Scrapeless Cloud Browser via modo CDP (Chrome DevTools Protocol), permitindo a raspagem web sem um ambiente de navegador local. Os usuários podem configurar ainda mais proxies, impressões digitais, reuso de sessão e outros recursos para atender às demandas de cenários de alta concorrência e anti-bot complexos.
3. Rotação Automática Global de Proxy
O Scrapeless suporta IPs residenciais em 195 países. Os usuários podem configurar a região alvo usando proxycountry, permitindo que as requisições sejam enviadas de locais específicos. Os IPs são rotacionados automaticamente, evitando bloqueios de forma eficaz.
import asyncio
from urllib.parse import urlencode
from Crawl4AI import CrawlerRunConfig, BrowserConfig, AsyncWebCrawler
async def main():
scrapeless_params = {
"token": "your token",
"sessionTTL": 1000,
"sessionName": "Proxy Demo",
# Sets the target country/region for the proxy, sending requests via an IP address from that region. You can specify a country code (e.g., US for the United States, GB for the United Kingdom, ANY for any country). See country codes for all supported options."proxyCountry": "ANY",
}
query_string = urlencode(scrapeless_params)
scrapeless_connection_url = f"wss://browser.scrapeless.com/api/v2/browser?{query_string}"async with AsyncWebCrawler(
config=BrowserConfig(
headless=False,
browser_mode="cdp",
cdp_url=scrapeless_connection_url,
)
) as crawler:
result = await crawler.arun(
url="https://www.scrapeless.com/en",
config=CrawlerRunConfig(
wait_for="css:.content",
scan_full_page=True,
),
)
print("-" * 20)
print(f'Status Code: {result.status_code}')
print("-" * 20)
print(f'Title: {result.metadata["title"]}')
print(f'Description: {result.metadata["description"]}')
print("-" * 20)
asyncio.run(main())
4. Impressões Digitais de Navegador Personalizadas
Para mimetizar o comportamento de usuários reais, o Scrapeless suporta impressões digitais de navegador geradas aleatoriamente e também permite parâmetros de impressão digital personalizados. Isso reduz efetivamente o risco de ser detectado pelos websites alvo.
import json
import asyncio
from urllib.parse import quote, urlencode
from Crawl4AI import CrawlerRunConfig, BrowserConfig, AsyncWebCrawler
async def main():
# customize browser fingerprint
fingerprint = {
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.1.2.3 Safari/537.36",
"platform": "Windows",
"screen": {
"width": 1280, "height": 1024
},
"localization": {
"languages": ["zh-HK", "en-US", "en"], "timezone": "Asia/Hong_Kong",
}
}
fingerprint_json = json.dumps(fingerprint)
encoded_fingerprint = quote(fingerprint_json)
scrapeless_params = {
"token": "your token",
"sessionTTL": 1000,
"sessionName": "Fingerprint Demo",
"fingerprint": encoded_fingerprint,
}
query_string = urlencode(scrapeless_params)
scrapeless_connection_url = f"wss://browser.scrapeless.com/api/v2/browser?{query_string}"async with AsyncWebCrawler(
config=BrowserConfig(
headless=False,
browser_mode="cdp",
cdp_url=scrapeless_connection_url,
)
) as crawler:
result = await crawler.arun(
url="https://www.scrapeless.com/en",
config=CrawlerRunConfig(
wait_for="css:.content",
scan_full_page=True,
),
)
print("-" * 20)
print(f'Status Code: {result.status_code}')
print("-" * 20)
print(f'Title: {result.metadata["title"]}')
print(f'Description: {result.metadata["description"]}')
print("-" * 20)
asyncio.run(main())
5. Reuso de Perfil
O Scrapeless atribui a cada perfil seu próprio ambiente de navegador independente, permitindo logins persistentes e isolamento de identidade. Os usuários podem simplesmente fornecer o profileId para reutilizar uma sessão anterior.
import asyncio
from urllib.parse import urlencode
from Crawl4AI import CrawlerRunConfig, BrowserConfig, AsyncWebCrawler
async def main():
scrapeless_params = {
"token": "your token",
"sessionTTL": 1000,
"sessionName": "Profile Demo",
"profileId": "your profileId",# create profile on scrapeless
}
query_string = urlencode(scrapeless_params)
scrapeless_connection_url = f"wss://browser.scrapeless.com/api/v2/browser?{query_string}"async with AsyncWebCrawler(
config=BrowserConfig(
headless=False,
browser_mode="cdp",
cdp_url=scrapeless_connection_url,
)
) as crawler:
result = await crawler.arun(
url="https://www.scrapeless.com",
config=CrawlerRunConfig(
wait_for="css:.content",
scan_full_page=True,
),
)
print("-" * 20)
print(f'Status Code: {result.status_code}')
print("-" * 20)
print(f'Title: {result.metadata["title"]}')
print(f'Description: {result.metadata["description"]}')
print("-" * 20)
asyncio.run(main())