Rotação no nível da lista
A ProxySale gira os proxies pela própria lista. O pool perde endereços mortos e ganha novos o dia inteiro, e toda vez que o seu software pede o link ele recebe o conjunto que funciona naquele momento. Você não configura regras de rotação do nosso lado: recarregue o link a cada 8–10 minutos e a lista fica em dia.
Depois, o seu software escolhe a linha de cada requisição. A maioria dos scrapers e ferramentas de SEO pega um proxy aleatório por requisição ou troca depois de um erro, e a carga se espalha por milhares de endereços.
Por que proxies rotativos ajudam scrapers
Buscadores, marketplaces e comparadores de preço contam requisições por IP. Um endereço que manda centenas de requisições por minuto cai em captcha ou bloqueio. Espalhe a mesma carga por uma lista de proxies rotativos e cada endereço manda só algumas, então o alvo vê algo parecido com visitantes comuns.
A rotação também esconde linhas mortas. Uma requisição que falha sai de novo por outro endereço, e a próxima recarga da lista descarta a linha ruim.
Configurando a rotação no software
- A-Parser e ZennoPoster: adicione o link da lista como fonte de proxies com recarga a cada 10 minutos.
- Scrapy: carregue a lista em um downloader middleware que escolha uma linha aleatória por requisição.
- Python requests: guarde a lista na memória e passe uma linha aleatória no dicionário proxies.
- curl no bash: pegue uma linha com
shuf -n 1antes de cada chamada.
Deixe a recarga entre 8 e 10 minutos. Limitamos requisições que chegam a cada minuto, e o pool nem muda tão rápido assim.
Estratégias de rotação
- Uma linha aleatória por requisição: o esquema mais simples, com a carga mais uniforme.
- Uma linha para uma série curta: útil quando o site espera algumas requisições ligadas, como uma página de busca e a próxima página de resultados.
- Troca no erro: manter a linha enquanto ela responde e descartá-la após um captcha, um tempo esgotado ou um 403.
- Descanso: depois de um bloqueio, deixar o endereço fora da rotação por 10 a 15 minutos.
A maioria dos scrapers combina a primeira e a terceira: uma linha aleatória por requisição e troca imediata após um erro. Acompanhe a fatia de captchas e de requisições falhas. Se ela subir, adicione endereços ou desacelere.
Quantos endereços você precisa
Conte as requisições por minuto para o seu alvo mais difícil e divida pelo que um endereço consegue mandar sem problema. Se um site tolera cinco requisições por minuto de um IP e você precisa de 5.000, planeje pelo menos 1.000 endereços vivos, mais uma folga para a queda da madrugada. Trabalhos maiores estão na página de proxies no atacado.
Escolha o pool pelo alvo: World MIX para sites globais, proxies da Europa para lojas e buscas da UE, proxies da CEI para Yandex e marketplaces regionais, proxies da China para Baidu.
Tarefas que pedem endereço fixo
Alguns trabalhos precisam do mesmo endereço por muito tempo: entrar em contas, manter um carrinho, rodar perfis de navegadores antidetect. Uma lista rotativa de pacote não combina com isso, porque o endereço pode sair do pool. Para esse trabalho use proxies residenciais do pool Max: cada linha tem a própria sessão, com prazo entre três minutos e um dia, enquanto o dispositivo doméstico estiver online. A página de proxies para antidetect mostra como configurar os perfis.
Para tudo que lê páginas públicas, a rotação combina melhor e custa menos por requisição.
Um arquivo de lista que se renova a cada 10 minutos
Algumas ferramentas só leem proxies de um arquivo. Mantenha esse arquivo fresco com um pequeno script que baixa a lista a cada 10 minutos. Cada script abaixo grava primeiro em um arquivo temporário e só substitui o principal depois de um download completo, então o seu software nunca lê uma lista pela metade ou vazia. Coloque o link da lista do painel no lugar de YOUR_LIST_LINK.
Linux: um script shell e cron
Salve o script como /opt/proxies/update-proxies.sh, torne-o executável com chmod +x /opt/proxies/update-proxies.sh e rode uma vez na mão. Ele mostra quantos proxies salvou, ou um erro se o link não responder.
#!/bin/sh
LIST_URL="YOUR_LIST_LINK"
DEST="/opt/proxies/proxies.txt"
TMP="$DEST.tmp"
mkdir -p "$(dirname "$DEST")"
if curl -fsS --max-time 60 -o "$TMP" "$LIST_URL" && [ -s "$TMP" ]; then
mv "$TMP" "$DEST"
echo "$(date '+%F %T') saved $(wc -l < "$DEST") proxies"
else
rm -f "$TMP"
echo "$(date '+%F %T') download failed, kept the old list" >&2
exit 1
fiAbra o agendamento com crontab -e e adicione a linha abaixo. O cron roda o script a cada 10 minutos e acrescenta as mensagens a um log. Rode como root ou troque os dois caminhos por uma pasta no seu diretório pessoal.
*/10 * * * * /opt/proxies/update-proxies.sh >> /var/log/update-proxies.log 2>&1Windows: PowerShell e Agendador de Tarefas
Salve o script como C:\proxies\update-proxies.ps1 e rode uma vez no PowerShell para conferir o link.
$ListUrl = "YOUR_LIST_LINK"
$Dest = "C:\proxies\proxies.txt"
$Tmp = "$Dest.tmp"
New-Item -ItemType Directory -Force -Path (Split-Path $Dest) | Out-Null
try {
Invoke-WebRequest -Uri $ListUrl -OutFile $Tmp -UseBasicParsing -TimeoutSec 60
if ((Get-Item $Tmp).Length -eq 0) { throw "empty list" }
Move-Item -Force $Tmp $Dest
$count = (Get-Content $Dest | Measure-Object -Line).Lines
Write-Output "$(Get-Date -Format s) saved $count proxies"
} catch {
Remove-Item $Tmp -ErrorAction SilentlyContinue
Write-Output "$(Get-Date -Format s) download failed, kept the old list: $($_.Exception.Message)"
exit 1
}Registre uma tarefa que rode o script a cada 10 minutos: cole o comando no Prompt de Comando ou no PowerShell. A tarefa sobrevive a reinicializações e aparece no Agendador de Tarefas como UpdateProxies. Ela roda enquanto você estiver logado; para rodar sem sessão, abra o prompt como administrador e acrescente /RU SYSTEM ao comando.
schtasks /Create /TN "UpdateProxies" /SC MINUTE /MO 10 /F /TR "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\proxies\update-proxies.ps1"Prefere o mouse? Abra o Agendador de Tarefas, escolha Criar Tarefa Básica, selecione um gatilho diário, depois abra as propriedades da tarefa e marque Repetir a tarefa a cada 10 minutos pela duração Indefinidamente. A ação inicia powershell.exe com os argumentos -NoProfile -ExecutionPolicy Bypass -File C:\proxies\update-proxies.ps1.
Qualquer sistema: Python
A versão em Python roda em loop e não precisa de agendador. Inicie em um terminal, dentro do screen ou do tmux, ou como serviço. Ela precisa de Python 3 e de nenhum pacote extra.
import time
import urllib.request
from pathlib import Path
LIST_URL = "YOUR_LIST_LINK"
DEST = Path("proxies.txt")
EVERY = 600
while True:
try:
data = urllib.request.urlopen(LIST_URL, timeout=60).read()
if not data.strip():
raise ValueError("empty list")
tmp = DEST.with_name(DEST.name + ".tmp")
tmp.write_bytes(data)
tmp.replace(DEST)
print(time.strftime("%Y-%m-%dT%H:%M:%S"), "saved", len(data.split()), "proxies", flush=True)
except Exception as error:
print(time.strftime("%Y-%m-%dT%H:%M:%S"), "download failed, kept the old list:", error, flush=True)
time.sleep(EVERY)Aponte o software para o arquivo salvo, e ele sempre lê uma lista com menos de 10 minutos. Mantenha o intervalo em 10 minutos: limitamos requisições mais frequentes.
Protocolos, preços e teste
Cada linha rotativa do pacote atende HTTP, HTTPS, SOCKS4 e SOCKS5 numa única porta, veja proxies SOCKS5 e proxies HTTP. Tamanhos e períodos estão na tabela de preços, e uma hora grátis em qualquer pacote pode ser pedida na página de contato.
