Um proxy residencial rotativo é feito para escala: um novo IP a cada requisição, ou para uma sessão fixa de até 30 minutos. Isso é exatamente errado para um tipo diferente de tarefa: permanecer logado em uma conta o dia todo, manter um checkout ou uma sessão de monitoramento ativa por horas, ou gerenciar a conta de vendedor de uma loja sempre a partir do mesmo lugar. Para isso, o site espera um visitante consistente, e um IP que muda parece uma sessão roubada.
Os proxies ISP são feitos para isso. Cada um permanece na cidade e no provedor de internet que você escolher durante todo o período de cobrança. Mas um bom proxy é apenas metade da configuração. A outra metade é garantir que tudo o mais na sessão permaneça igualmente consistente. Este guia percorre a configuração que recomendamos aos clientes, com código que você pode adaptar.
Quando você precisa de um proxy ISP em vez de um rotativo
| Sua tarefa | O que usar |
|---|---|
| Coletar muitas páginas em muitos sites | Proxies residenciais rotativos |
| Um fluxo de múltiplas etapas que termina em até 30 minutos | Sessão fixa residencial |
| Uma sessão que precisa durar horas | Proxy ISP |
| Permanecer logado em suas próprias contas dia após dia | Proxy ISP |
| Verificar como um site aparece a partir de uma cidade e provedor específicos | Proxy ISP |
O limite de 30 minutos é o critério prático. As sessões fixas residenciais na Shifter duram até 30 minutos. Qualquer coisa mais longa, ou qualquer coisa que volte à mesma conta no dia seguinte, pertence a um proxy ISP.
Como funcionam os proxies ISP da Shifter
- Cada IP que você aloca recebe seu próprio nome de usuário, e todos os nomes de usuário de um plano compartilham uma senha.
- Cada proxy se conecta pelo mesmo host e porta,
isp.shifter.io:443, via HTTP(S) ou SOCKS5. - Você escolhe a cidade e o ISP (ASN) para cada IP ao alocá-lo, dentre 120 países.
- Cada proxy mantém essa cidade e esse ISP enquanto o plano estiver ativo.
- O endereço IP por trás dele pode se renovar ao longo do tempo, da mesma forma que uma conexão de banda larga residencial recebe um novo endereço do seu provedor de vez em quando. A cidade e o provedor permanecem os mesmos.
- A largura de banda é ilimitada: os planos têm preço por IP.
Esse penúltimo ponto importa para logins persistentes. Sua configuração deve prever que o endereço mude ocasionalmente e depender do que permanece igual: localização, provedor e o perfil do navegador.
A configuração, em cinco regras
1. Um proxy por conta, nunca compartilhado. Dê a cada conta seu próprio nome de usuário de proxy ISP e mantenha esse pareamento fixo. Duas contas em um único IP parecem vinculadas; uma conta em vários IPs parece estar sendo acessada de lugares diferentes.
2. Posicione cada IP onde a conta realmente vive. Se a conta pertence a uma loja em Chicago, coloque seu IP em um provedor de Chicago. Um login a partir da cidade certa e de um provedor residencial parece a rotina normal da conta.
3. Mantenha um perfil de navegador persistente por conta. Cookies, armazenamento local e sessões salvas são o que mantém você logado. Armazene-os em um diretório de perfil por conta e reutilize-o sempre. Um navegador novo a cada execução significa um login novo a cada execução, o que é exatamente o que dispara solicitações de verificação.
4. Faça o navegador concordar com o proxy. Fuso horário e idioma devem corresponder à localização do ponto de saída. A forma mais simples é perguntar ao ponto de saída onde ele está e configurar o navegador a partir da resposta. Nosso guia sobre como combinar geolocalização, fuso horário e idioma do proxy cobre a lista completa de sinais.
5. Verifique o ponto de saída antes de começar. Confirme que o proxy está na cidade esperada e no provedor esperado antes de abrir a conta. Se não estiver, pare em vez de fazer login a partir do lugar errado.
O código
O módulo abaixo coloca as cinco regras em prática com Python e Playwright. Ele valida o mapeamento conta-proxy, verifica o ponto de saída através do ip-info.com (nossa API gratuita de geolocalização de IP), e abre um perfil de navegador persistente fixado ao proxy daquela conta, com o fuso horário obtido do próprio ponto de saída.
from pathlib import Path
import requests
ISP_GATEWAY = "isp.shifter.io:443"
def validate_assignments(accounts):
"""One ISP proxy per account, and no proxy shared between accounts."""
problems, seen_accounts, owner = [], set(), {}
for a in accounts:
if a["account"] in seen_accounts:
problems.append(f"{a['account']}: listed twice")
seen_accounts.add(a["account"])
other = owner.setdefault(a["isp_username"], a["account"])
if other != a["account"]:
problems.append(f"{a['isp_username']}: shared by {other} and {a['account']}")
return problems
def check_exit(account, password, get=requests.get):
"""Ask the exit where it is, and compare with where this account belongs."""
proxy = f"http://{account['isp_username']}:{password}@{ISP_GATEWAY}"
info = get("http://ip-info.com/json", proxies={"http": proxy, "https": proxy}, timeout=20).json()
problems = []
if info.get("city") != account["city"]:
problems.append(f"city is {info.get('city')}, expected {account['city']}")
if info.get("asn") != account["asn"]:
problems.append(f"ASN is {info.get('asn')}, expected {account['asn']}")
return {"ip": info.get("ip"), "timezone": info.get("timezone"), "problems": problems}
def browser_options(account, password, exit_info, profile_root):
"""Persistent Chromium profile for one account, pinned to its own ISP proxy."""
return {
"user_data_dir": str(Path(profile_root) / account["account"]),
"proxy": {"server": f"http://{ISP_GATEWAY}",
"username": account["isp_username"], "password": password},
"timezone_id": exit_info["timezone"],
"locale": account["locale"],
"viewport": {"width": 1440, "height": 900},
}
def open_account(playwright, account, password, profile_root="profiles"):
"""Check the exit first; only then open the account's own browser profile."""
exit_info = check_exit(account, password)
if exit_info["problems"]:
raise RuntimeError(f"{account['account']}: " + "; ".join(exit_info["problems"]))
options = browser_options(account, password, exit_info, profile_root)
return playwright.chromium.launch_persistent_context(**options)
E utilizando-o:
import os
from playwright.sync_api import sync_playwright
from isp_sessions import open_account, validate_assignments
ACCOUNTS = [
{"account": "store-us", "isp_username": "us-chicago-illinois-as7922-XXXXX",
"city": "Chicago", "asn": 7922, "locale": "en-US"},
{"account": "store-de", "isp_username": "de-berlin-berlin-as3320-XXXXX",
"city": "Berlin", "asn": 3320, "locale": "de-DE"},
]
password = os.environ["ISP_PASSWORD"]
problems = validate_assignments(ACCOUNTS)
if problems:
raise SystemExit("\n".join(problems))
with sync_playwright() as p:
browser = open_account(p, ACCOUNTS[0], password)
page = browser.pages[0] if browser.pages else browser.new_page()
page.goto("https://example.com/account")
# ... the account's work; cookies and storage persist in profiles/store-us
browser.close()
Substitua os sufixos XXXXX pelos nomes de usuário da página do seu plano, que lista todos os nomes de usuário com sua cidade e ISP. O diretório de perfil, profiles/store-us neste exemplo, é o que mantém a conta logada entre execuções: faça backup dele, e nunca aponte duas contas para o mesmo diretório.
Testamos a verificação de mapeamento, a verificação de ponto de saída (contra respostas gravadas) e as opções de navegador com o Chromium do Playwright. A verificação de ponto de saída precisa de um plano ISP ativo para rodar contra proxies reais.
Mantendo sessões ativas por horas
- Mantenha um ritmo constante e humano. Uma pessoa em uma conta clica, lê e espera. Rajadas de centenas de ações por minuto parecem automatizadas, por melhor que seja o proxy.
- Reutilize o navegador aberto. Mantenha um navegador aberto durante toda a sessão de trabalho em vez de relançá-lo para cada tarefa.
- Reverifique o ponto de saída após uma pausa longa. Se você retomar depois de horas, execute novamente a verificação de ponto de saída. Como o endereço pode se renovar, um site pode ocasionalmente pedir para confirmar um login; com a mesma cidade, provedor e perfil, essa é a mesma experiência que um usuário real tem depois que seu roteador doméstico reinicia.
- Não troque uma conta para outro proxy para resolver um problema. Se uma conta for desafiada, uma cidade ou provedor diferente piora as coisas. Corrija a causa, mantenha o pareamento.
Solução de problemas
| Sintoma | Causa provável | Solução |
|---|---|---|
407 Proxy Authentication Required | Nome de usuário ou senha incorretos | Copie novamente as credenciais da página do plano; cada IP tem seu próprio nome de usuário |
| A verificação de ponto de saída reporta a cidade errada | O nome de usuário pertence a outra alocação | Verifique o nome de usuário na lista da página do plano |
| Deslogado após cada execução | Um perfil de navegador novo a cada vez | Use um diretório de perfil persistente por conta |
| Solicitações de verificação repetidas | Fuso horário ou idioma não correspondem ao ponto de saída, ou a conta trocou de proxy | Configure o navegador a partir da localização do ponto de saída e mantenha um proxy por conta |
| Requisições lentas ou com falha a partir de um IP | Um problema com essa alocação | Execute a verificação de conectividade da documentação e entre em contato com o suporte informando o nome de usuário |
Uma observação sobre o uso responsável de contas
Essas técnicas são para contas que você tem o direito de usar: suas próprias contas comerciais, contas de seus clientes com a permissão deles, e contas de teste em seus próprios serviços. Cada plataforma tem suas próprias regras sobre automação e sobre quantas contas uma pessoa ou empresa pode operar. Uma configuração consistente evita que trabalho legítimo seja sinalizado; não é uma forma de contornar as regras de uma plataforma, e não deve ser usada como tal.
Perguntas frequentes
Posso usar proxies residenciais rotativos para sessões longas?
Apenas até certo ponto. As sessões fixas residenciais na Shifter duram até 30 minutos. Para sessões que duram mais, ou para logins aos quais você retorna todos os dias, use um proxy ISP, que mantém sua cidade e ISP durante todo o período de cobrança.
O endereço IP de um proxy ISP alguma vez muda?
A cidade e o ISP permanecem fixos enquanto seu plano estiver ativo. O endereço IP por trás do proxy pode se renovar ao longo do tempo, como uma conexão de banda larga residencial. Construa sua configuração em torno da localização, do provedor e de um perfil de navegador persistente, que permanecem os mesmos.
Quantas contas devem compartilhar um proxy ISP?
Uma. Dê a cada conta seu próprio proxy para que cada uma pareça uma residência separada e nenhuma das duas contas pareça vinculada.
Preciso de um perfil de navegador persistente?
Para logins, sim. O perfil mantém os cookies e o armazenamento que mantêm você conectado. Sem ele, cada execução começa como um dispositivo novo e tem muito mais chances de receber uma solicitação de verificação.
Conclusão
Sessões longas e logins persistentes precisam de consistência, não de rotação. Dê a cada conta seu próprio proxy ISP posicionado na cidade real da conta, mantenha um perfil de navegador persistente por conta, configure o fuso horário e o idioma do navegador a partir do ponto de saída, e verifique o ponto de saída antes de cada início. Com isso em prática, uma conta parece a mesma todos os dias, que é tudo o que um site está verificando. Nossa comparação entre proxies ISP e residenciais cobre a escolha mais ampla entre os dois.