Configuração de proxy
Configure roteamento de proxy baseado em URL para o AnyCrawl
Configuração de proxy
O AnyCrawl oferece roteamento flexível de proxy com base em padrões de URL. Você pode configurar proxies diferentes para sites ou endpoints de API distintos.
Modos de proxy
O AnyCrawl suporta quatro modos de proxy que podem ser informados nas requisições da API:
| Modo | Descrição |
|---|---|
auto | Decide automaticamente entre o proxy base e o stealth. Começa pelo base quando disponível; se o base estiver indisponível ou houver novas tentativas/falhas, faz upgrade ou fallback para stealth. |
base | Usa o proxy configurado em ANYCRAWL_PROXY_URL (padrão) |
stealth | Usa o proxy configurado em ANYCRAWL_PROXY_STEALTH_URL (normalmente residencial ou premium) |
| URL personalizada | Uma string de URL de proxy completa (por exemplo, http://user:pass@proxy:8080), retornada como custom nas respostas |
Serviço hospedado: solicitar explicitamente
proxy: "stealth"exige o plano Hobby ou superior. No plano Free, a requisição é rejeitada com403 stealth_proxy_not_allowed— inclusive quandostealthé definido dentro de um template, de um alvo de monitor ou de uma tarefa agendada.auto,basee URLs de proxy personalizadas estão disponíveis em todos os planos. Instâncias auto-hospedadas não têm restrição.
Exemplo de uso
{
"url": "https://example.com",
"engine": "playwright",
"proxy": "auto"
}{
"url": "https://example.com",
"engine": "playwright",
"proxy": "stealth"
}{
"url": "https://example.com",
"engine": "playwright",
"proxy": "http://custom-proxy:8080"
}Comportamento de timeout (API Scrape)
- O
timeoutno nível da requisição sempre tem prioridade. - Se
proxyforstealthouautoetimeoutnão for informado, o AnyCrawl usaANYCRAWL_STEALTH_TIMEOUT_MS(padrão:120000). - Para o modo
baseou URLs de proxy personalizadas semtimeoutexplícito, o AnyCrawl usa60000.
Métodos de configuração
Método 1: Configuração simples de proxy (ANYCRAWL_PROXY_URL)
Para casos em que todas as requisições usam o mesmo proxy, defina a variável de ambiente ANYCRAWL_PROXY_URL:
# Proxy único
export ANYCRAWL_PROXY_URL=http://username:[email protected]:8080
# Vários proxies (modo em camadas)
export ANYCRAWL_PROXY_URL=http://proxy1:8080,http://proxy2:8080,http://proxy3:8080Quando vários proxies são informados (separados por vírgula), o AnyCrawl usa uma estratégia de proxy em camadas:
- Todas as requisições começam pelo primeiro proxy (camada 0)
- Se um proxy falhar para um domínio, o AnyCrawl troca automaticamente para a próxima camada nesse domínio
- Isso oferece failover inteligente e uso otimizado de proxy
É a forma mais simples quando você não precisa de roteamento por URL.
Método 2: Arquivo de configuração avançada (ANYCRAWL_PROXY_CONFIG)
Para roteamento por URL, crie um arquivo JSON (por exemplo, proxy-config.json) e defina ANYCRAWL_PROXY_CONFIG com o caminho:
ANYCRAWL_PROXY_CONFIG=/path/to/proxy-config.jsonObservação: se ANYCRAWL_PROXY_URL e ANYCRAWL_PROXY_CONFIG estiverem definidos, as regras do arquivo têm precedência e ANYCRAWL_PROXY_URL funciona como fallback para URLs que não casam com nenhuma regra.
Tipos de regra
O AnyCrawl suporta três tipos de regra, aplicados nesta ordem de prioridade:
1. Regras de URL (maior prioridade)
Correspondência exata de URL. Use quando um endpoint específico precisar de um proxy específico.
{
"url": "https://api.example.com/v1/data",
"proxy": "http://username:[email protected]:8080"
}2. Regras de padrão (prioridade média)
Correspondência de URL completa com curingas. Útil para caminhos ou protocolos específicos.
{
"pattern": "https://*.github.com/api/*",
"proxy": "http://username:[email protected]:8080"
}3. Regras de domínio (menor prioridade)
Correspondência apenas por domínio. Encaminha todas as requisições daquele domínio por um proxy.
{
"domain": "*.gov.au",
"proxy": "http://username:[email protected]:8080"
}Padrões com curinga
*— Corresponde a qualquer quantidade de caracteres?— Corresponde a exatamente um caractere- Os padrões não diferenciam maiúsculas de minúsculas
Exemplos
*.example.com— Corresponde aapi.example.com,www.example.com,test.example.comapi-?.example.com— Corresponde aapi-1.example.com,api-2.example.com, mas não aapi-10.example.comhttps://*.example.com/api/*— Corresponde a qualquer URL HTTPS em subdomínios de example.com com o caminho/api/
Exemplo completo de configuração
{
"rules": [
{
"url": "https://api.example.com/v1/users",
"proxy": "http://premium-proxy.example.com:8080"
},
{
"pattern": "https://api.github.com/*",
"proxy": "http://github-proxy.example.com:8080"
},
{
"domain": "*.gov.au",
"proxy": "http://au-proxy.example.com:8080"
}
]
}Formatos de URL de proxy
O AnyCrawl aceita diversos formatos:
- HTTP:
http://username:[email protected]:8080 - HTTPS:
https://username:[email protected]:8443
Depuração
Mensagens como:
Using proxy from request userData: http://custom-proxy:8080
Found proxy for URL https://example.com: http://proxy.example.com:8080 By matching a rule.
Proxy matched by domain pattern: *.gov.au → http://proxy.example.com:8080
Using tiered proxy: http://default-proxy:8080Exemplo de prioridade
Para a URL https://api.github.com/repos/owner/repo, a ordem de verificação é:
- URL:
"url": "https://api.github.com/repos/owner/repo" - Padrão:
"pattern": "https://api.github.com/*" - Domínio:
"domain": "*.github.com"
A primeira regra que casar vence.
Boas práticas
- Use regras de domínio para necessidades amplas (por exemplo, todos os sites governamentais de um país)
- Use regras de padrão quando precisar casar caminhos ou protocolos específicos
- Use regras de URL para endpoints exatos que exigem tratamento especial
- A ordem no arquivo não importa para a prioridade — ela é definida pelo tipo de regra
- Teste os padrões com logs de depuração para garantir que casam como esperado
Sistema de proxy em camadas
Com vários proxies em ANYCRAWL_PROXY_URL, o AnyCrawl usa um sistema em camadas:
Como funciona
- Estado inicial: todos os domínios começam na primeira proxy (camada 0)
- Detecção de erro: quando uma proxy falha para um domínio, esse domínio sobe para a próxima camada
- Por domínio: cada domínio mantém seu próprio nível de camada
Cenário de exemplo
export ANYCRAWL_PROXY_URL=http://fast-proxy:8080,http://stable-proxy:8080,http://backup-proxy:8080- Requisições iniciais a
example.com→fast-proxy:8080(camada 0) - Se
fast-proxyfalhar paraexample.com→stable-proxy:8080(camada 1) - Enquanto isso,
github.compode continuar emfast-proxy:8080se estiver OK - O sistema retenta periodicamente
fast-proxyparaexample.compara verificar recuperação
Benefícios
- Failover automático: sem intervenção manual quando proxies falham
- Otimização por domínio: cada domínio usa a melhor proxy disponível
- Eficiência: proxies com falha não são abandonadas para sempre
- Autocura: retorno automático às proxies ideais quando recuperam
Exemplo completo: dois métodos juntos
# Proxy padrão para uso geral
export ANYCRAWL_PROXY_URL=http://default-proxy:8080
# Roteamento por URL para sites específicos
export ANYCRAWL_PROXY_CONFIG=/path/to/proxy-config.jsonCom este proxy-config.json:
{
"rules": [
{
"domain": "*.gov.au",
"proxy": "http://au-residential-proxy:8080"
},
{
"pattern": "https://api.*.com/*",
"proxy": "http://api-optimized-proxy:3128"
}
]
}Resultado:
https://www.homeaffairs.gov.au/→au-residential-proxy:8080(regra de domínio)https://api.github.com/repos→api-optimized-proxy:3128(regra de padrão)https://example.com/→default-proxy:8080(fallback paraANYCRAWL_PROXY_URL)
Resumo das variáveis de ambiente
| Variável | Finalidade | Exemplo |
|---|---|---|
ANYCRAWL_PROXY_URL | Proxy base (único ou múltiplos) | http://proxy:8080 ou http://p1:8080,http://p2:8080 |
ANYCRAWL_PROXY_STEALTH_URL | Proxy stealth/premium (residencial) | http://residential-proxy:8080 |
ANYCRAWL_PROXY_STEALTH_CREDITS | Créditos extras ao usar proxy stealth | 5 |
ANYCRAWL_STEALTH_TIMEOUT_MS | Timeout padrão para proxy=stealth e proxy=auto quando timeout da requisição é omitido | 120000 |
ANYCRAWL_PROXY_CONFIG | Caminho do JSON de roteamento por URL | /path/to/proxy-config.json |
Ordem de prioridade
- Mais alta: modo de proxy ou URL personalizada nas opções da requisição
Ou com URL personalizada:{ "url": "https://example.com", "engine": "playwright", "proxy": "stealth" }{ "url": "https://example.com", "engine": "cheerio", "proxy": "http://custom-proxy:8080" } - Alta: regras baseadas em URL de
ANYCRAWL_PROXY_CONFIG - Baixa: proxies em camadas de
ANYCRAWL_PROXY_URL(fallback)