In this Article
La biblioteca requests de Python es la forma más simple de hacer llamadas HTTP — y añadir un proxy es solo un parámetro. Ya sea que estés haciendo scraping, probando contenido restringido por geo o construyendo un cliente de API que necesita parecer un usuario real, enrutas las solicitudes a través de un proxy con el argumento proxies=. Esta guía muestra exactamente cómo usar un proxy con Python requests (HTTP, HTTPS, autenticado, SOCKS5, sesiones, variables de entorno y rotación), y luego clasifica los 8 mejores proxies para Python requests en 2026. DataImpulse a $1/GB es la línea base de valor.
Soy Andrii Byzov, un CMO Fraccional AI-Native que escribe scrapers en Python a diario. Abajo: los snippets para copiar y pegar, la instalación de SOCKS5 + el truco de la fuga de DNS, y los proveedores que valen tu presupuesto.
Datos Clave
- Pasa un dict
proxiescon las claveshttpyhttps:requests.get(url, proxies={"http": "...", "https": "..."}). - Las credenciales van en la URL del proxy —
http://user:pass@host:port— sin paso de autenticación separado. - Usa una
Sessionpara definir el proxy una vez y reutilizarlo (con pooling de conexiones) en muchas solicitudes. - SOCKS5 necesita una instalación:
pip install "requests[socks]", luego usasocks5h://(la h) para que el DNS resuelva a través del proxy y no filtres tu ubicación real. - DataImpulse es la opción de valor — residencial $1/GB pay-as-you-go, datacenter $0,50/GB, móvil $2/GB, 90M+ IPs en 195 países, HTTP/HTTPS/SOCKS5, segmentación por país/ciudad/ASN.
Cómo Usar un Proxy con Python Requests
1. Proxy HTTP/HTTPS básico con autenticación
import requests
proxies = {
"http": "http://YOUR_LOGIN__cr.us:[email protected]:823",
"https": "http://YOUR_LOGIN__cr.us:[email protected]:823", # __cr.us = US
}
r = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=30)
print(r.json()) # confirm the egress IP
Ambas claves apuntan al mismo proxy; las credenciales en la URL se usan automáticamente. Define siempre un timeout. Si tu contraseña contiene caracteres especiales (@ : # /), hazle URL-encode con urllib.parse.quote() primero.
2. Una Session (define el proxy una vez, reutilízalo)
session = requests.Session()
session.proxies = proxies
session.get("https://example.com/page1")
session.get("https://example.com/page2") # same proxy, pooled connections
3. SOCKS5 (instala una vez, evita la fuga de DNS)
# pip install "requests[socks]"
proxies = {
"http": "socks5h://YOUR_LOGIN__cr.us:[email protected]:824",
"https": "socks5h://YOUR_LOGIN__cr.us:[email protected]:824",
}
requests.get("https://httpbin.org/ip", proxies=proxies, timeout=30)
Usa socks5h (con la h) para que los hostnames resuelvan del lado del proxy; el socks5 simple resuelve localmente y puede revelar tu ubicación real. DataImpulse expone SOCKS5 en el puerto 824.
4. Variables de entorno y rotación
# env vars (requests honors these automatically):
# export HTTPS_PROXY="http://YOUR_LOGIN__cr.us:[email protected]:823"
# rotation: with a rotating gateway each request already gets a fresh IP
for _ in range(5):
print(requests.get("https://httpbin.org/ip", proxies=proxies, timeout=30).json())
Con el gateway residencial rotativo de DataImpulse, cada solicitud sale de una nueva IP automáticamente — ninguna lista de proxy que gestionar. Para rotar una lista estática tú mismo, haz random.choice() de un proxy por solicitud.
Mejores Proxies para Python Requests de un Vistazo
| Proveedor | Mejor para requests | Precio residencial | Protocolos | Destacado |
|---|---|---|---|---|
| DataImpulse | Mejor valor, scripts y scraping | $1/GB PAYG | HTTP/HTTPS/SOCKS5 | Pool de 90M+, SOCKS5 con auth, nunca caduca |
| Bright Data | Empresarial + gestionado | ~$4/GB promo; $8 normal | HTTP/HTTPS/SOCKS5 | Web Unlocker, SERP API, datasets |
| Oxylabs | SLA empresarial | desde $6/GB | HTTP/HTTPS/SOCKS5 | Pool de 175M+, scraper APIs |
| Decodo | Mercado medio, grilla geo completa | $3,75/GB (~$2 a 1TB+) | HTTP/HTTPS/SOCKS5 | Pool de 115M+, sticky hasta 24h |
| IPRoyal | Sesiones sticky largas | desde $7,35/GB | HTTP/HTTPS/SOCKS5 | Sticky hasta 7 días; PAYG barato |
| SOAX | Mezcla residencial + móvil | $3,60/GB Starter | HTTP/HTTPS/SOCKS5 | 155M+ res, 33M+ móvil |
| Webshare | Económico / self-serve | desde $3,50/mes res; $2,99/mes DC | HTTP/SOCKS5 | Nivel gratis, datacenter más barato |
| NetNut | Estabilidad ISP-residencial | desde $3,53/GB | HTTP/HTTPS | IPs estáticas de ISP de consumidor |

Las selecciones, en resumen
DataImpulse es la línea base de valor para el trabajo con Python requests — residencial a $1/GB pay-as-you-go (datacenter $0,50/GB, móvil $2/GB), 90M+ IPs en 195 países, HTTP/HTTPS y SOCKS5 autenticado, con segmentación por país/ciudad/ASN en el nombre de usuario. El tráfico nunca caduca, así que las ejecuciones de dev no queman una suscripción. Tasa de éxito publicada 99,51%; G2 4,8/5; soporte humano 24/7. Para scraping de alto volumen con requests, es el menor costo por solicitud exitosa.
Bright Data es la opción empresarial (residencial ~$8/GB normal, ~$4 promo) con Web Unlocker, SERP API y datasets. Oxylabs (desde $6/GB, pool de 175M+) es la opción de nivel SLA. Decodo (desde $3,75/GB, sticky hasta 24h) es la opción equilibrada de mercado medio. IPRoyal (desde $7,35/GB, sticky hasta 7 días) sirve para scripts largos y estables en sesión. SOAX ($3,60/GB, 155M+ residencial + 33M+ móvil) añade un fuerte pool móvil. Webshare (nivel gratis, datacenter desde $2,99/mes) es la entrada económica self-serve, y NetNut (desde $3,53/GB) es la opción de estabilidad ISP-residencial. Todas funcionan con el argumento proxies=.
Errores Comunes de Proxy en Python Requests
- Usar
socks5://en vez desocks5h://— elsocks5simple resuelve el DNS localmente y puede filtrar tu ubicación real; usasocks5h. - Olvidar el
pip install "requests[socks]"— sin él, una URL de proxysocks5lanza un error “Missing dependencies for SOCKS support”. - Sin
timeout. Un proxy muerto puede colgar la solicitud para siempre; pasa siempretimeout=. - Usar
verify=Falsepara “arreglar” errores de SSL — esto oculta riesgos de man-in-the-middle; arregla la causa real. - IPs de datacenter en objetivos defendidos — son bloqueadas rápido; usa residencial para sitios pesados en anti-bot y combina con headers realistas (User-Agent).
Proxies Rotativos vs Sticky con Requests
Para scraping amplio, un gateway residencial rotativo es ideal — cada solicitud recibe una nueva IP, así que un bucle simple reparte el scrape por el pool sin gestión de IP. Para flujos con estado (login y luego llamadas de seguimiento), usa una Session con un proxy sticky para que la misma IP y cookies persistan a lo largo de la secuencia. La mayoría de los scripts de requests son sin estado, así que el rotativo es el valor por defecto común.
¿Qué Tipo de Proxy para Python Requests — Residencial, Datacenter o Móvil?
- Residencial ($1/GB) — el valor por defecto para objetivos defendidos (e-commerce, SERPs, social). Si eliges uno, elige este.
- Móvil ($2/GB) — IPs reales de operadora para los objetivos más duros y superficies de web móvil.
- Datacenter ($0,50/GB) — el más barato y rápido para trabajo desprotegido, APIs y tu propia infraestructura; no lo apuntes a sitios pesados en anti-bot.
DataImpulse ofrece los tres en una sola cuenta pay-as-you-go, así que un solo script puede enrutar cada solicitud al nivel correcto vía el nombre de usuario y el endpoint.
Cómo Empezar con DataImpulse + Python Requests
Paso 1. Crea una cuenta DataImpulse y obtén las credenciales residenciales. El intro de $5 / 5GB nunca caduca — un presupuesto de prueba de verdad.
Paso 2. Construye el dict proxies con http://YOUR_LOGIN__cr.us:[email protected]:823, pásalo a requests.get(..., proxies=proxies, timeout=30), y añade un código de país al nombre de usuario para segmentación geo. Usa socks5h://...:824 tras pip install "requests[socks]" para SOCKS5.
Paso 3. Usa una Session para muchas llamadas, haz un bucle para la rotación y añade headers realistas. Consulta los tutoriales de DataImpulse y la página de proxies residenciales.
FAQ
¿Cómo uso un proxy con Python requests?
Pasa un dict proxies a tu llamada: requests.get(url, proxies={"http": "http://user:pass@host:port", "https": "http://user:pass@host:port"}). Las credenciales en la URL se usan automáticamente. Para DataImpulse: http://YOUR_LOGIN__cr.us:[email protected]:823. Usa una Session para reutilizar el proxy en varias solicitudes.
¿Python requests soporta proxies SOCKS5?
Sí, tras instalar el extra: pip install "requests[socks]". Luego usa una URL socks5h://user:pass@host:port en el dict de proxies — SOCKS5 autenticado funciona. Usa siempre socks5h (con la h) para que el DNS resuelva a través del proxy; el socks5 simple resuelve localmente y puede filtrar tu ubicación. DataImpulse expone SOCKS5 en el puerto 824.
¿Cuál es el mejor proxy para Python requests?
Proxies residenciales para objetivos defendidos — DataImpulse a $1/GB es la opción de valor (HTTP/HTTPS/SOCKS5, 90M+ IPs, SOCKS5 autenticado, tráfico que nunca caduca). Bright Data y Oxylabs son las opciones empresariales; Webshare es la más barata para empezar. Todas funcionan con el argumento proxies=; combina con headers realistas y un timeout.
¿Cómo roto proxies en Python requests?
Lo más fácil: apunta el dict de proxies a un gateway residencial rotativo (DataImpulse) — cada solicitud recibe una nueva IP automáticamente. Para rotar una lista estática, mantén una lista de URLs de proxy y haz random.choice() de una por solicitud, o recórrelas en ciclo. Para flujos con estado, mantén un proxy sticky en una Session en vez de rotar.
¿Por qué mi proxy en requests lanza “Missing dependencies for SOCKS support”?
Usaste una URL de proxy socks5 sin el extra de SOCKS instalado. Ejecuta pip install "requests[socks]" (trae PySocks), y entonces la URL socks5h:// funciona. Para proxies HTTP/HTTPS no se necesita instalación extra.
¿Cuánto cuestan los proxies para Python requests?
El residencial en bruto se cobra por GB — DataImpulse $1/GB (piso de valor), NetNut desde $3,53, SOAX $3,60, Decodo $3,75, Oxylabs desde $6, IPRoyal $7,35; Webshare ofrece suscripciones económicas desde $3,50/mes. Una página obtenida es una pequeña fracción de un GB, así que el residencial por GB es mucho más barato que las APIs gestionadas por registro para scraping de alto volumen; las opciones gestionadas sirven para los objetivos más duros.
