Esta é a lista de pré-voo para um primeiro projeto de proxy residencial: as coisas a confirmar, na ordem que torna cada uma delas barata de corrigir. Ela assume que você sabe mais ou menos o que é um proxy, e se não sabe, comece com proxies residenciais para principiantes e volte depois.
Siga a lista e você vai evitar as falhas que normalmente custam várias semanas a um primeiro projeto: um plano dimensionado para a carga de trabalho errada, um job que parece funcionar mas não coleta nada, e uma conta que ninguém previu.
Antes de escrever código
1. Confirme que você realmente precisa de residencial. Se seus alvos não examinam o tráfego com rigor, uma infraestrutura mais barata fará o mesmo trabalho. Teste um alvo a partir de uma conexão comum e a partir de um endereço de datacenter primeiro; se ambos funcionarem, você economizou o valor premium. A comparação está em residencial versus datacenter.
2. Decida entre rotativo ou estático. Rotativo para coleta em volume, IPs estáticos de ISP quando algo precisa persistir, como uma conta ou uma sessão longa. Errar nessa decisão não se resolve comprando mais do tipo errado, conforme compartilhado versus dedicado.
3. Liste seus mercados. Quais países, e se algum trabalho exige precisão de cidade. Isso determina tanto sua segmentação quanto se a profundidade do pool nesses mercados é algo a verificar, conforme disponibilidade por país.
4. Estime a largura de banda antes de escolher um plano. Tamanho da resposta multiplicado pelo volume de requisições, mais margem para retentativas. O maior fator isolado é se você busca endpoints de dados ou renderiza páginas completas, o que pode diferir em cem vezes, então resolva isso primeiro, conforme estimando a largura de banda mensal.
Primeira conexão
5. Faça uma requisição simples funcionar. Sem flags de segmentação, sem sessão, nada sofisticado:
curl -x customer-USERNAME:PASSWORD@p.shifter.io:443 https://ipinfo.io/jsonSe isso falhar, nada mais importa ainda. Um 407 significa credenciais ou um nome de usuário malformado; remova tudo e adicione de volta uma parte por vez, conforme corrigindo erros 407.
6. Confirme a rotação. Execute esse comando várias vezes e verifique se o endereço muda. Se não mudar, e especialmente se mudar pela linha de comando mas não pelo seu código, a causa é quase certamente reuso de conexão no seu cliente HTTP, e não o proxy, conforme IP não rotaciona.
7. Confirme a geografia. Solicite um país e verifique duas coisas: que o endereço de saída reporta esse país, e mais importante, que um alvo sensível a geolocalização se comporta como se você estivesse lá, com moeda e idioma locais. Bancos de dados e a própria opinião de um alvo nem sempre coincidem, e a do alvo é a que importa.
8. Configure as duas entradas de proxy e trate caracteres especiais. No código, configure as entradas HTTP e HTTPS, não apenas uma, e faça o percent-encoding de uma senha que contenha caracteres que tenham significado em uma URL. A referência de formato está em como conectar.
Antes de escalar
9. Faça sua requisição corresponder à sua saída. Envie um conjunto completo de cabeçalhos no formato de navegador em vez de um User-Agent isolado, e vincule o Accept-Language ao país de saída para que os dois não se contradigam. Se você controla um navegador, defina também localidade e fuso horário correspondentes. Detalhes em configurando os cabeçalhos corretos.
10. Valide os corpos das respostas, não os códigos de status. Essa é a verificação que separa um pipeline funcional de um que silenciosamente não coleta nada. Defina, por alvo, um marcador que só aparece em uma página genuinamente boa, e conte uma resposta como sucesso apenas se ela passar por esse teste. Uma página de desafio retornando 200 é a falha mais cara nesse trabalho, conforme detectando conteúdo bloqueado ou falso.
11. Adicione ritmo e retentativas sensatas antes do volume, não depois. Um limite de taxa por alvo com jitter, um limite de concorrência, e uma lógica de retentativa que classifica as falhas em vez de simplesmente repetir. Especificamente: espere sinais de limite de taxa em vez de rotacionar endereços para manter o mesmo ritmo, e nunca tente novamente um erro terminal. Veja limitação de taxa e throttling e lógica de retentativa.
12. Estabeleça uma proteção de custo. Rastreie bytes por requisição e configure um alerta bem antes da alocação do seu plano, porque a surpresa comum do primeiro projeto é um job de renderização consumindo um mês de largura de banda em três dias. As alavancas estão em cortando custos de largura de banda.
A verificação de cinco minutos
Antes de deixar qualquer coisa rodando sem supervisão, confirme tudo isso em uma execução curta:
- O endereço de saída não é o seu próprio
- Ele muda entre requisições quando você não solicitou uma sessão
- O país corresponde ao que você solicitou, e o alvo concorda
- Uma requisição deliberadamente ruim é classificada como falha em vez de contada como sucesso
- Bytes por requisição está aproximadamente de acordo com sua estimativa
- Uma resposta de limite de taxa causa uma espera em vez de uma retentativa imediata
Se algo disso estiver errado, corrija agora. Cada um desses itens se torna consideravelmente mais caro depois que há um mês de dados construído sobre ele.
Erros comuns de primeiro projeto
Quatro que respondem pela maior parte dos problemas.
Ir a toda velocidade imediatamente. Pipelines novos costumam ser escritos para rodar tão rápido quanto o código permite, o que é o caminho mais rápido para ser bloqueado. Comece devagar e aumente deliberadamente.
Confiar em códigos de status. Coberto acima, e vale repetir porque é o item que as pessoas pulam e o que corrompe um conjunto de dados silenciosamente.
Renderizar páginas que não precisavam ser renderizadas. Verifique se os dados estão disponíveis a partir de um endpoint subjacente antes de automatizar um navegador, conforme quando você precisa de um navegador headless.
Tratar uma sessão sticky como garantida. Sessões são de melhor esforço em conexões domésticas reais, então um fluxo precisa tolerar a mudança do endereço no meio da sequência, conforme sticky versus rotativo.
Conclusão
Confirme se você realmente precisa de residencial, escolha entre rotativo ou estático de forma deliberada, liste seus mercados e dimensione a largura de banda antes de escolher um plano. Depois, faça uma requisição simples funcionar antes de adicionar qualquer coisa, confirme a rotação e a geografia, e configure as duas entradas de proxy no código. Antes de escalar, faça seus cabeçalhos concordarem com sua saída, valide os corpos das respostas em vez dos códigos de status, adicione ritmo e retentativas classificadas, e estabeleça um alerta de custo. Execute a verificação de cinco minutos antes de deixar qualquer coisa sem supervisão. Quase toda falha cara de primeiro projeto é uma dessas etapas ignorada, e cada uma é mais barata de fazer agora do que de retrofit depois.
O produto que essas etapas configuram são os proxies residenciais, um gateway com segmentação por país e cidade e sessões sticky quando um fluxo precisa de uma, cobrado por GB para que um pequeno primeiro projeto permaneça uma pequena primeira conta.