Python
requests, httpx, aiohttp, concurrencia async
Docs · gateway, formato usuario, sesiones, errores, límites
Todo lo que necesitas para enviar la primera solicitud, y la referencia a la que regresarás: parámetros de segmentación, reglas de sesión, códigos de error y límites.
Respuesta rápida
¿Cómo conecto con los proxies de CrawlRelay?
Apunta cualquier cliente HTTP a http://USERNAME:[email protected]:7777 o SOCKS5 al puerto 7778. CrawlRelay, un servicio de proxy residencial orientado a desarrolladores, lee segmentación y sesiones desde el nombre de usuario: USERNAME-country-us-city-new_york-session-job1-ttl-30. El tráfico residencial cuesta 1,50 US$ por 1 GB y 0,50 US$/GB desde 50 GB. Se paga con criptomonedas, sin KYC.
| Servidor gateway | gw.crawlrelay.com |
|---|---|
| Puerto HTTP / HTTPS | 7777 (sitios HTTPS a través de CONNECT) |
| Puerto SOCKS5 | 7778 (usa socks5h:// para que DNS se resuelva en la salida) |
| Autenticación | Nombre de usuario y contraseña de tu plan o de un subusuario, o una lista blanca de IPs (hasta 10 IPs) |
| Formato del nombre de usuario | USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes} |
| Duración de la sesión | hasta 30 minutos; la IP puede cambiar antes |
| URL de prueba | https://api.ipify.org devuelve la IP de salida en texto plano |
| API de gestión | https://crawlrelay.com/api/v1, Claves API que puedes revocar en cualquier momento (documentación API) |
Copia el nombre de usuario y la contraseña de tu panel, luego ejecuta uno de estos comandos. Cada uno muestra la dirección IP que ve el sitio web, la cual suele cambiar en cada ejecución.
curl -x http://USERNAME-country-us:[email protected]:7777 https://api.ipify.orgimport requests
proxy = "http://USERNAME-country-us:[email protected]:7777"
r = requests.get("https://api.ipify.org", proxies={"http": proxy, "https": proxy}, timeout=(10, 30))
print(r.text)import { ProxyAgent, fetch } from "undici";
const dispatcher = new ProxyAgent("http://USERNAME-country-us:[email protected]:7777");
const res = await fetch("https://api.ipify.org", { dispatcher });
console.log(await res.text());Empieza con el nombre de usuario en tu panel y añade parámetros con guiones, en el orden del formato arriba. Cada parámetro es opcional. Los valores van en minúsculas y los nombres de ciudad usan guiones bajos (new_york, sao_paulo). La disponibilidad de ciudades varía.
| Meta | Nombre de usuario |
|---|---|
| Cualquier país, rotando por conexión | USERNAME |
| Alemania | USERNAME-country-de |
| París | USERNAME-country-fr-city-paris |
| Texas | USERNAME-country-us-state-tx |
| Un código postal | USERNAME-country-us-zip-10001 |
| Un proveedor de internet | USERNAME-country-us-asn-7922 |
| Misma IP hasta por 30 minutos | USERNAME-country-gb-session-abc123-ttl-30 |
Si tu contraseña contiene @, : o /, codifícala en URL antes de ponerla en la URL del proxy. La página de error 407 muestra cómo.
Un nombre de usuario sin session- recibe una IP del pool en cada nueva conexión TCP, usualmente diferente. Un nombre de usuario con session-<id>-ttl-<minutes> mantiene la misma IP de salida para ese ID hasta que expire el TTL o el dispositivo residencial se desconecte.
La guía de sesiones cubre el reuso de conexiones en cada librería.
Primero identifica quién respondió: el gateway o el sitio web detrás.
| Ves | Enviado por | Causa habitual | Qué hacer |
|---|---|---|---|
| 407 | Gateway | Credenciales incorrectas o sin codificar | Corrige el nombre de usuario o la contraseña; nunca reintentes a ciegas |
| ERR_TUNNEL_CONNECTION_FAILED | Navegador | CONNECT rechazado (a menudo un 407 oculto) | Pasa las credenciales como campos, no en la URL del servidor |
| 502 / 504 | Gateway o CDN | Salida caída, destino lento o caído | Reintenta con una nueva conexión, con límite |
| 403 | Sitio web | País, encabezados, tasa errónea, o rechazo | Verifica en un navegador; reduce la velocidad o respeta el rechazo |
| 429 | Sitio web | Límite de tasa | Respeta Retry-After; reduce la concurrencia por host |
| SSL: WRONG_VERSION_NUMBER | Tu cliente | https:// delante de la URL del proxy | Usa http:// para la URL del proxy |
Todas las entradas 15 están en la referencia de errores.
En el panel o vía REST API en https://crawlrelay.com/api/v1 con una clave API. Claves API que puedes revocar en cualquier momento. Las tareas principales:
requests, httpx, aiohttp, concurrencia async
Middleware, sesiones por solicitud, AutoThrottle
Python y Node.js, proxy por contexto
Flag más page.authenticate()
Proxy autenticado vía forwarder local
undici, axios, got, SOCKS5
HTTP, SOCKS5, depuración con -v
Reutilización de conexión, TTL, una IP por flujo
Límites por host, rendimiento y retroceso
CrawlRelay publica guías para copiar y pegar de Python (requests, httpx, aiohttp), Scrapy, Playwright, Puppeteer, Selenium, Node.js y curl, un compendio de 15 errores de proxy y una referencia REST API con ejemplos en curl, Python y Node.js. Cada ejemplo usa el host y puertos reales del gateway, y cada snippet se verifica sintácticamente antes de publicarse.
No. La autenticación con nombre y contraseña funciona desde cualquier máquina, así que puedes ejecutar el mismo scraper en un portátil, un servidor o un runner CI. Si prefieres, añade hasta 10 IPs a una lista blanca. Guarda credenciales en variables de entorno o un gestor de secretos, nunca en tu repositorio.
O bien tu nombre de usuario contiene un ID de sesión, que mantiene una IP fija a propósito, o tu cliente reutiliza una conexión persistente. La rotación ocurre con cada conexión nueva. Elimina la parte de la sesión o abre una conexión nueva por solicitud, como se muestra en la guía de sesiones.
Usa el puerto HTTP (7777) para web scraping: todas las librerías y navegadores lo soportan con autenticación, y los sitios HTTPS funcionan vía túneles CONNECT. Usa SOCKS5 (7778) para herramientas que sólo hablan SOCKS, con socks5h:// para que el DNS se resuelva en la salida.
Solicita https://api.ipify.org a través del proxy para obtener la IP, luego búscala en una base de datos de geolocalización que confíes. Las bases de datos difieren en algunas IPs, especialmente las móviles, así que también verifica el contenido que sirve el objetivo: moneda, idioma y resultados locales son lo que realmente importan para tus datos.
Los planes se facturan por GB, no por solicitud, y los primeros límites que encontrarás son los propios del objetivo. Controla el ritmo para cada objetivo por separado y reduce la velocidad ante respuestas 429 y 503. Si planeas un rastreo muy grande, informa primero al soporte en [email protected].
Desde 0,50 US$/GB · sin KYC
Comienza ahora