Respuesta rápida
¿Cómo puedo saber por qué falló una solicitud a través del proxy?
Primero descubre quién respondió: la puerta de enlace proxy (407, fallos CONNECT, algunos 502 y 504), el sitio web (401, 403, 429, la mayoría 503) o tu propio cliente (errores TLS y de tiempo de espera). Luego, compara el mensaje exacto con una página a continuación. Esta referencia cubre 15 errores que encuentran los scrapers con proxies residenciales CrawlRelay o cualquier proxy HTTP o SOCKS5, con código para solucionar cada uno.
¿Qué error estoy viendo?
Encuentra tu síntoma y luego abre la página para un diagnóstico completo.
| Síntoma | Enviado por | ¿Reintentar? | Página |
|---|---|---|---|
407, 'Fallo en la conexión del túnel: 407' | Proxy | No | 407 Proxy Authentication Required |
401 con WWW-Authenticate | Sitio web | No | 401 vs 407 |
403 página o mensaje de firewall | Sitio web | Una vez, luego detener | 403 Forbidden |
429, a menudo con Retry-After | Sitio web | Sí, más tarde | 429 Too Many Requests |
502, 'fallo en túnel CONNECT, respuesta 502' | Proxy o CDN | Sí, nuevo punto de salida | 502 Bad Gateway |
503, página de mantenimiento o desafío | Sitio web o CDN | Sí, con tiempos de espera incrementados | 503 Service Unavailable |
504 | Proxy o CDN | Una o dos veces | 504 Gateway Timeout |
net::ERR_TUNNEL_CONNECTION_FAILED | Navegador (proxy rechazó CONNECT) | Después de corregir la causa | ERR_TUNNEL_CONNECTION_FAILED |
net::ERR_PROXY_CONNECTION_FAILED | Navegador (proxy inalcanzable) | No | ERR_PROXY_CONNECTION_FAILED |
ProxyError: Unable to connect to proxy | Cliente Python | Depende de la causa | No se puede conectar al proxy |
[SSL: WRONG_VERSION_NUMBER] | Tu biblioteca TLS | No | SSL: WRONG_VERSION_NUMBER |
CERTIFICATE_VERIFY_FAILED | Tu biblioteca TLS | No | Fallo en la verificación del certificado |
ReadTimeout, 'Lectura agotada' | Tu cliente | Sí, nuevo punto de salida | Lectura agotada |
ECONNRESET, 'conexión interrumpida', 'Conexión restablecida por el par' | Red | Sí, solicitudes seguras | Conexión restablecida |
| 'Faltan dependencias para soporte SOCKS', error curl 97 | Cliente o servidor SOCKS | Depende | Errores SOCKS5 |
Todos los errores por tipo
Códigos de estado HTTP
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Errores de navegador y cliente
Errores de conexión y TLS
¿Qué errores debe reintentar un scraper automáticamente?
Reintenta lo que pueda cambiar solo, y detente en lo que no puede:
- Reintenta con una conexión nueva: 502, 504, conexiones interrumpidas y tiempos de lectura agotados. Una conexión nueva suele obtener una salida residencial diferente.
- Reintenta más tarde, más lento: 429 y 503. Espera
Retry-Aftero retrocede exponencialmente con jitter, y reduce la concurrencia en ese host. - Reintenta una vez, luego detente: 403. Un reintento en una IP nueva separa una dirección señalada de una regla del sitio.
- Nunca reintentes a ciegas: 407, 401, errores TLS y proxies inalcanzables. Son problemas de configuración.
La guía de Python muestra una política de reintentos que sigue estas reglas con urllib3 y su Retry.
¿Cómo registró los errores para que sea fácil depurarlos?
Registra cinco campos para cada solicitud fallida: el host de la URL, el código de estado o clase de excepción, el ID de sesión si hay, el tiempo hasta el primer byte, y los primeros 200 caracteres del cuerpo de la respuesta. El cuerpo te dice si un CDN, un firewall o el proxy escribió la página de error. Cuenta los errores por host y por estado cada minuto: un salto en un host significa que el sitio cambió algo; un salto en todos los hosts indica que tu configuración o red fallan.
Referencia de errores: preguntas
¿Cómo saber si un error viene del proxy o del sitio web?
Mira dónde ocurrió. Los errores durante el paso CONNECT, mostrados por curl -v antes de cualquier saludo TLS, vienen del proxy: 407, o un 502 o 504 en CONNECT. Los estados que llegan después del saludo TLS, con los encabezados y HTML del sitio, vienen del sitio web. Los errores del cliente como timeouts y fallos TLS vienen de tu código o red.
¿Se cobran las solicitudes fallidas?
El tráfico se cuenta en bytes movidos a través del gateway, así que una respuesta de error que nunca llegó al sitio web, como un 407, mueve casi nada. Una página de bloqueo de un sitio web es una respuesta normal y tiene un tamaño como cualquier otra página. Reduce ambos arreglando errores de configuración tempranamente y disminuyendo la velocidad en 403 y 429.
¿Cuál es una tasa normal de errores para un scraper usando proxies residenciales?
Depende de los objetivos. La investigación de Proxyway 2026 midió una tasa mediana de éxito del 99.28% en redes de proxy residencial pero 74.43% en objetivos reales protegidos como Amazon, Google e Instagram. Mide tus propios objetivos y sigue la tasa con el tiempo: un cambio brusco importa más que el número absoluto.