Rotación a nivel de lista
ProxySale rota los proxies a través de la propia lista. El pool pierde direcciones muertas y gana nuevas todo el día, y cada vez que su software pide el enlace recibe el conjunto que funciona en ese momento. No configura reglas de rotación en nuestro lado: recargue el enlace cada 8 a 10 minutos y la lista se mantiene al día.
Después su software elige la línea para cada petición. La mayoría de los scrapers y herramientas SEO toman un proxy al azar por petición o cambian tras un error, y la carga se reparte entre miles de direcciones.
Por qué los proxies rotativos ayudan a los scrapers
Los buscadores, los marketplaces y los comparadores de precios cuentan las peticiones por IP. Una dirección que envía cientos de peticiones por minuto acaba en un captcha o un bloqueo. Reparta la misma carga en una lista de proxies rotativos y cada dirección envía solo unas pocas, así que el destino ve algo parecido a visitantes normales.
La rotación también esconde las líneas muertas. Una petición fallida sale otra vez por otra dirección, y la siguiente recarga de la lista descarta la línea mala.
Configurar la rotación en su software
- A-Parser y ZennoPoster: añada el enlace de la lista como fuente de proxies con recarga cada 10 minutos.
- Scrapy: cargue la lista en un downloader middleware que elija una línea al azar por petición.
- Python requests: guarde la lista en memoria y pase una línea al azar en el diccionario proxies.
- curl en bash: tome una línea con
shuf -n 1antes de cada llamada.
Deje la recarga en 8 a 10 minutos. Limitamos las peticiones que llegan cada minuto, y de todas formas el pool no cambia tan deprisa.
Estrategias de rotación
- Una línea al azar por petición: el esquema más sencillo y con la carga más pareja.
- Una línea para una serie corta: útil cuando un sitio espera unas pocas peticiones relacionadas, como una página de búsqueda y la siguiente página de resultados.
- Cambio tras error: mantener una línea mientras responda y descartarla tras un captcha, un tiempo agotado o un 403.
- Enfriamiento: tras un bloqueo, dejar la dirección fuera de la rotación de 10 a 15 minutos.
La mayoría de los scrapers combinan la primera y la tercera: una línea al azar por petición y cambio inmediato tras un error. Vigile la proporción de captchas y peticiones fallidas. Si crece, añada direcciones o vaya más despacio.
Cuántas direcciones necesita
Cuente las peticiones por minuto a su objetivo más difícil y divídalas entre lo que una dirección puede enviar sin problemas. Si un sitio tolera cinco peticiones por minuto desde una IP y necesita 5000, prevea al menos 1000 direcciones vivas, más margen para la bajada nocturna. Los trabajos mayores se tratan en la página de proxies al por mayor.
Elija el pool según el objetivo: World MIX para sitios globales, proxies de Europa para tiendas y búsquedas de la UE, proxies de la CEI para Yandex y marketplaces regionales, proxies de China para Baidu.
Tareas que necesitan una dirección fija
Algunos trabajos necesitan una misma dirección durante mucho tiempo: iniciar sesión en cuentas, mantener un carrito, usar perfiles de navegadores antidetect. Una lista rotativa de paquete encaja mal aquí, porque la dirección puede salir del pool. Para ese trabajo tome proxies residenciales del pool Max: cada línea tiene su propia sesión, con un plazo de tres minutos a un día, mientras el dispositivo doméstico siga en línea. La página de proxies para antidetect muestra cómo configurar los perfiles.
Para todo lo que lee páginas públicas, la rotación encaja mejor y cuesta menos por petición.
Un archivo de lista que se renueva cada 10 minutos
Algunas herramientas leen proxies solo desde un archivo. Mantenga ese archivo fresco con un pequeño script que descargue la lista cada 10 minutos. Cada script de abajo escribe primero en un archivo temporal y sustituye el principal solo tras una descarga completa, así que su software nunca lee una lista a medio escribir o vacía. Ponga el enlace de la lista del panel en lugar de YOUR_LIST_LINK.
Linux: un script de shell y cron
Guarde el script como /opt/proxies/update-proxies.sh, hágalo ejecutable con chmod +x /opt/proxies/update-proxies.sh y ejecútelo una vez a mano. Muestra cuántos proxies guardó, o un error si el enlace no responde.
#!/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 la programación con crontab -e y añada la línea de abajo. Cron lanza el script cada 10 minutos y añade sus mensajes a un registro. Ejecútelo como root o cambie las dos rutas a una carpeta de su directorio personal.
*/10 * * * * /opt/proxies/update-proxies.sh >> /var/log/update-proxies.log 2>&1Windows: PowerShell y el Programador de tareas
Guarde el script como C:\proxies\update-proxies.ps1 y ejecútelo una vez en PowerShell para comprobar el enlace.
$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 una tarea que ejecute el script cada 10 minutos: pegue el comando en el Símbolo del sistema o en PowerShell. La tarea sobrevive a los reinicios y aparece en el Programador de tareas como UpdateProxies. Se ejecuta mientras tenga la sesión iniciada; para que corra sin sesión, abra la consola como administrador y añada /RU SYSTEM al comando.
schtasks /Create /TN "UpdateProxies" /SC MINUTE /MO 10 /F /TR "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\proxies\update-proxies.ps1"¿Prefiere el ratón? Abra el Programador de tareas, elija Crear tarea básica, escoja un desencadenador diario, abra después las propiedades de la tarea y marque Repetir la tarea cada 10 minutos durante Indefinidamente. La acción inicia powershell.exe con los argumentos -NoProfile -ExecutionPolicy Bypass -File C:\proxies\update-proxies.ps1.
Cualquier sistema: Python
La versión en Python corre en bucle y no necesita programador. Iníciela en una terminal, dentro de screen o tmux, o como servicio. Necesita Python 3 y ningún paquete adicional.
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)Apunte su software al archivo guardado y siempre leerá una lista de menos de 10 minutos. Mantenga el intervalo en 10 minutos: limitamos las peticiones más frecuentes.
Protocolos, precios y prueba
Cada línea rotativa de paquete funciona por SOCKS5, SOCKS4, HTTP y HTTPS en un puerto, vea proxies SOCKS5 y proxies HTTP. Tamaños y periodos están en la lista de precios, y el soporte da una hora gratis de cualquier paquete en la página de contacto.
