Pular para o conteúdo principal
Firecrawl oferece diferentes tipos de proxy para ajudar você a fazer scraping de sites com diferentes níveis de complexidade. O tipo de proxy pode ser especificado usando o parâmetro proxy.

Tipos de Proxy

Firecrawl oferece suporte a três tipos de proxy:
  • basic: Proxies básicos para fazer scraping na maioria dos sites. Rápidos e geralmente funcionam bem.
  • enhanced: Proxies avançados para fazer scraping em sites complexos mantendo a privacidade. Mais lentos, mas mais confiáveis em determinados sites.
  • auto: Firecrawl tentará automaticamente repetir o scraping com proxies enhanced se o proxy basic falhar. Se a nova tentativa com enhanced for bem-sucedida, 5 créditos serão cobrados pelo scraping. Se a primeira tentativa com basic for bem-sucedida, apenas o custo normal será cobrado.
Se você não especificar um proxy, o Firecrawl usará auto por padrão.

Usando o Modo Avançado

Ao fazer scraping de sites complexos, você pode usar o modo avançado (enhanced mode) para aumentar sua taxa de sucesso, mantendo a privacidade.
from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key='fc-YOUR-API-KEY')

# Escolha a estratégia de proxy: 'basic' | 'enhanced' | 'auto'
doc = firecrawl.scrape('https://example.com', formats=['markdown'], proxy='auto')

print(doc.warning or 'ok')
Observação: As requisições com proxy avançado custam 5 créditos por requisição.

Usando Enhanced como mecanismo de nova tentativa

Um padrão comum é primeiro tentar fazer o scraping com as configurações de proxy padrão e, em seguida, tentar novamente no modo enhanced se você encontrar códigos de status de erro específicos (401, 403 ou 500) no campo metadata.statusCode da resposta. Esses códigos de status podem indicar que o site está bloqueando sua requisição.
# pip install firecrawl-py

from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="YOUR_API_KEY")

# First try with basic proxy
try:
    content = firecrawl.scrape("https://example.com")
    
    # Check if we got an error status code
    status_code = content.get("metadata", {}).get("statusCode")
    if status_code in [401, 403, 500]:
        print(f"Recebemos o código de status {status_code}, tentando novamente com o proxy enhanced")
        # Retry with enhanced proxy
        content = firecrawl.scrape("https://example.com", proxy="enhanced")
    
    print(content["markdown"])
except Exception as e:
    print(f"Error: {e}")
    # Retry with enhanced proxy on exception
    try:
        content = firecrawl.scrape("https://example.com", proxy="enhanced")
        print(content["markdown"])
    except Exception as e:
        print(f"Enhanced proxy also failed: {e}")
Essa abordagem permite otimizar o uso de créditos, usando o modo enhanced apenas quando necessário.