Un proxy residencial rotativo está construido para la escala: una IP nueva para cada petición, o una sesión persistente de hasta 30 minutos. Eso es exactamente lo contrario de lo que necesita otro tipo de trabajo: mantener la sesión iniciada en una cuenta todo el día, mantener viva durante horas una sesión de pago o de monitorización, o gestionar la cuenta de vendedor de una tienda siempre desde el mismo sitio. Para eso, el sitio espera un visitante consistente, y una IP que cambia parece una sesión robada.
Los proxies ISP están hechos para esto. Cada uno permanece en la ciudad y en el proveedor de internet que elijas durante todo el periodo de facturación. Pero un buen proxy es solo la mitad de la configuración. La otra mitad consiste en asegurarse de que todo lo demás en la sesión se mantenga igual de consistente. Esta guía repasa la configuración que recomendamos a los clientes, con código que puedes adaptar.
Cuándo necesitas un proxy ISP en lugar de uno rotativo
| Tu tarea | Qué usar |
|---|---|
| Recopilar muchas páginas en muchos sitios | Proxies residenciales rotativos |
| Un flujo de varios pasos que termina en menos de 30 minutos | Sesión persistente residencial |
| Una sesión que debe durar horas | Proxy ISP |
| Mantener la sesión iniciada en tus propias cuentas día tras día | Proxy ISP |
| Comprobar cómo se ve un sitio desde una ciudad y un proveedor concretos | Proxy ISP |
El límite de 30 minutos es el criterio práctico. Las sesiones persistentes residenciales en Shifter duran hasta 30 minutos. Cualquier cosa más larga, o cualquier cosa que vuelva a la misma cuenta al día siguiente, pertenece a un proxy ISP.
Cómo funcionan los proxies ISP de Shifter
- Cada IP que asignas recibe su propio nombre de usuario, y todos los nombres de usuario de un plan comparten una contraseña.
- Cada proxy se conecta a través del mismo host y puerto,
isp.shifter.io:443, mediante HTTP(S) o SOCKS5. - Eliges la ciudad y el ISP (ASN) para cada IP al asignarla, entre 120 países.
- Cada proxy mantiene esa ciudad y ese ISP mientras el plan esté activo.
- La dirección IP que hay detrás puede renovarse con el tiempo, de la misma forma que una conexión de banda ancha doméstica recibe una nueva dirección de su proveedor de vez en cuando. La ciudad y el proveedor se mantienen iguales.
- El ancho de banda es ilimitado: los planes tienen precio por IP.
Ese penúltimo punto importa para los inicios de sesión persistentes. Tu configuración debe esperar que la dirección cambie ocasionalmente y apoyarse en lo que permanece igual: la ubicación, el proveedor y el perfil del navegador.
La configuración, en cinco reglas
1. Un proxy por cuenta, nunca compartido. Da a cada cuenta su propio nombre de usuario de proxy ISP y mantén fija esa pareja. Dos cuentas en una misma IP parecen vinculadas; una cuenta repartida en varias IP parece accedida desde lugares distintos.
2. Coloca cada IP donde realmente vive la cuenta. Si la cuenta pertenece a una tienda en Chicago, coloca su IP en un proveedor de Chicago. Un inicio de sesión desde la ciudad correcta y un proveedor residencial parece la rutina normal de la cuenta.
3. Mantén un perfil de navegador persistente por cuenta. Las cookies, el almacenamiento local y las sesiones guardadas son lo que te mantiene conectado. Guárdalos en un directorio de perfil por cuenta y reutilízalo cada vez. Un navegador nuevo en cada ejecución significa un inicio de sesión nuevo en cada ejecución, que es exactamente lo que provoca las solicitudes de verificación.
4. Haz que el navegador concuerde con el proxy. La zona horaria y el idioma deben coincidir con la ubicación de la salida. La forma más sencilla es preguntarle a la salida dónde está y configurar el navegador a partir de la respuesta. Nuestra guía sobre hacer coincidir la geolocalización, la zona horaria y el idioma del proxy cubre la lista completa de señales.
5. Comprueba la salida antes de empezar. Confirma que el proxy está en la ciudad esperada y en el proveedor esperado antes de abrir la cuenta. Si no lo está, detente en lugar de iniciar sesión desde el lugar equivocado.
El código
El módulo que sigue pone en práctica las cinco reglas con Python y Playwright. Valida la asignación de cuenta a proxy, comprueba la salida mediante ip-info.com (nuestra API gratuita de geolocalización de IP) y abre un perfil de navegador persistente anclado al proxy de esa cuenta, con la zona horaria tomada de la propia salida.
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)
Y usándolo:
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()
Sustituye los sufijos XXXXX por los nombres de usuario de la página de tu plan, que enumera cada nombre de usuario con su ciudad e ISP. El directorio de perfil, profiles/store-us en este ejemplo, es lo que mantiene la cuenta conectada entre ejecuciones: haz copia de seguridad y nunca apuntes dos cuentas al mismo directorio.
Hemos probado la comprobación de asignaciones, la comprobación de salida (contra respuestas grabadas) y las opciones del navegador con el Chromium de Playwright. La comprobación de salida necesita un plan ISP activo para ejecutarse contra proxies reales.
Mantener las sesiones vivas durante horas
- Mantén un ritmo constante y humano. Una persona en una cuenta hace clic, lee y espera. Ráfagas de cientos de acciones por minuto parecen automatizadas por muy bueno que sea el proxy.
- Reutiliza el navegador abierto. Mantén un navegador abierto durante toda la duración de la sesión de trabajo en lugar de relanzarlo para cada tarea.
- Vuelve a comprobar la salida tras una pausa larga. Si retomas el trabajo tras varias horas, ejecuta de nuevo la comprobación de salida. Como la dirección puede renovarse, un sitio puede pedirte ocasionalmente que confirmes el inicio de sesión; con la misma ciudad, el mismo proveedor y el mismo perfil, es la misma experiencia que tiene un usuario real después de que su router doméstico se reinicie.
- No cambies una cuenta a otro proxy para resolver un problema. Si una cuenta recibe un desafío, una ciudad o un proveedor diferente lo empeora. Soluciona la causa, mantén la pareja.
Solución de problemas
| Síntoma | Causa probable | Solución |
|---|---|---|
407 Proxy Authentication Required | Nombre de usuario o contraseña incorrectos | Copia de nuevo las credenciales desde la página del plan; cada IP tiene su propio nombre de usuario |
| La comprobación de salida indica una ciudad incorrecta | El nombre de usuario pertenece a otra asignación | Comprueba el nombre de usuario contra la lista de la página del plan |
| Sesión cerrada después de cada ejecución | Un perfil de navegador nuevo cada vez | Usa un directorio de perfil persistente por cuenta |
| Solicitudes de verificación repetidas | La zona horaria o el idioma no coinciden con la salida, o la cuenta se movió entre proxies | Configura el navegador a partir de la ubicación de la salida y mantén un proxy por cuenta |
| Peticiones lentas o fallidas desde una IP | Un problema con esa asignación | Ejecuta la comprobación de conectividad de la documentación y contacta con soporte indicando el nombre de usuario |
Una nota sobre el uso responsable de cuentas
Estas técnicas son para cuentas que tienes derecho a usar: tus propias cuentas de empresa, las cuentas de tus clientes con su permiso y cuentas de prueba en tus propios servicios. Cada plataforma tiene sus propias normas sobre automatización y sobre cuántas cuentas puede gestionar una persona o empresa. Una configuración consistente evita que el trabajo legítimo sea marcado; no es una forma de eludir las normas de una plataforma, y no debería usarse como tal.
Preguntas frecuentes
¿Puedo usar proxies residenciales rotativos para sesiones largas?
Solo hasta cierto punto. Las sesiones persistentes residenciales en Shifter duran hasta 30 minutos. Para sesiones que duren más, o para inicios de sesión a los que vuelves cada día, usa un proxy ISP, que mantiene su ciudad y su ISP durante todo el periodo de facturación.
¿Cambia alguna vez la dirección IP de un proxy ISP?
La ciudad y el ISP se mantienen fijos mientras tu plan está activo. La dirección IP que hay detrás del proxy puede renovarse con el tiempo, como una conexión de banda ancha doméstica. Construye tu configuración en torno a la ubicación, el proveedor y un perfil de navegador persistente, que son los que se mantienen iguales.
¿Cuántas cuentas deberían compartir un proxy ISP?
Una. Da a cada cuenta su propio proxy para que cada una parezca un hogar independiente y ninguna cuenta parezca vinculada a otra.
¿Necesito un perfil de navegador persistente?
Para los inicios de sesión, sí. El perfil contiene las cookies y el almacenamiento que te mantienen conectado. Sin él, cada ejecución empieza como un dispositivo nuevo y es mucho más probable que se solicite verificación.
En resumen
Las sesiones largas y los inicios de sesión persistentes necesitan consistencia, no rotación. Da a cada cuenta su propio proxy ISP colocado en la ciudad real de la cuenta, mantén un perfil de navegador persistente por cuenta, configura la zona horaria y el idioma del navegador a partir de la salida, y comprueba la salida antes de cada inicio. Con eso en su sitio, una cuenta se ve igual cada día, que es todo lo que un sitio está comprobando. Nuestra comparación de proxies ISP y residenciales cubre la elección más amplia entre ambos.