Sin KYC — sin identificación, sin selfie, sin documentos · Segmentación por ciudad, estado y código ZIP en todos los planes
Idioma: Español
Empezar

Docs · Python 3.10+

Proxies residenciales de Python por ciudad de EE. UU.: ejemplos con requests

Ejemplos para copiar y pegar con la librería requests, con sintaxis verificada con python -m py_compile.

Última actualización:

Respuesta rápida

¿Cómo uso un proxy de una ciudad de EE. UU. en Python?

Construye la URL del proxy a partir del gateway y un nombre de usuario de ciudad, y pásala a requests: http://USERNAME-country-us-state-il-city-chicago:[email protected]:7777. Añade -zip- para un barrio o -session- para mantener una misma IP. MetroProxies incluye segmentación por ciudad, ZIP y ASN en todos los planes desde 0,50 US$/GB (octubre de 2026). Sin KYC; cripto.

1. Una solicitud desde una ciudad
import requests

user = "USERNAME-country-us-state-il-city-chicago"
proxy = f"http://{user}:[email protected]:7777"

r = requests.get("https://ipinfo.io/json", proxies={"http": proxy, "https": proxy}, timeout=30)
r.raise_for_status()
print(r.json().get("city"), r.json().get("org"))

¿Cómo hago un fallback de ZIP a ciudad a estado?

Los lugares pequeños pueden no tener ninguna IP en línea en un momento dado. Prueba primero la solicitud más específica, amplía un nivel a la vez y devuelve el nivel que respondió para poder guardarlo con el resultado. La función de abajo hace exactamente eso y se rinde tras el nivel de estado en lugar de reintentar sin fin.

2. Fallback de ZIP → ciudad → estado
import requests

GATEWAY = "gw.metroproxies.com:7777"
USER, PASSWORD = "USERNAME", "PASSWORD"


def fetch_local(url: str, state: str, city: str | None = None, zip_code: str | None = None) -> tuple[str, requests.Response]:
    levels = []
    if city and zip_code:
        levels.append(("zip", f"-state-{state}-city-{city}-zip-{zip_code}"))
    if city:
        levels.append(("city", f"-state-{state}-city-{city}"))
    levels.append(("state", f"-state-{state}"))
    last_error: Exception | None = None
    for level, segment in levels:
        proxy = f"http://{USER}-country-us{segment}:{PASSWORD}@{GATEWAY}"
        try:
            r = requests.get(url, proxies={"http": proxy, "https": proxy}, timeout=30)
            r.raise_for_status()
            return level, r
        except requests.RequestException as e:
            last_error = e
    raise RuntimeError(f"no IP at zip, city or state level: {last_error}")


level, resp = fetch_local("https://ipinfo.io/json", "nm", city="albuquerque", zip_code="87102")
print(level, resp.json().get("city"))
3. Una sesión fija para una comprobación de varios pasos
import requests

user = "USERNAME-country-us-state-wa-city-tacoma-session-tac01-ttl-15"
proxy = f"http://{user}:[email protected]:7777"

with requests.Session() as s:
    s.proxies = {"http": proxy, "https": proxy}
    first = s.get("https://api.ipify.org", timeout=30).text
    # step 1, step 2 ... on your own site, all from the same Tacoma IP
    second = s.get("https://api.ipify.org", timeout=30).text
    print(first, second, "same IP" if first == second else "IP changed: restart the flow")

¿Qué detalles de Python suelen causar problemas?

  • Nueva IP por solicitud: requests.Session() mantiene la conexión abierta, así que el modo rotativo da una sola IP para toda la sesión. Usa llamadas requests.get() simples o un nuevo Session por solicitud para rotar.
  • SOCKS5: instala pip install "requests[socks]" y usa socks5h:// para que el proxy resuelva los nombres de host, no tu máquina. Puerto 7778.
  • Caracteres especiales en la contraseña: codifícalos con urllib.parse.quote(password, safe="").
  • Timeouts: define siempre uno; las salidas residenciales pueden ser más lentas que las de data center.
  • Sé respetuoso: mantén un ritmo de solicitudes moderado en cada sitio y respeta el robots.txt y sus términos.

¿Adónde debería ir ahora?

Empieza por la configuración en cinco minutos, compara con los ejemplos de Node.js y curl, y conserva las IP con sesiones fijas por ciudad. Toda la documentación: documentación.

¿Qué más pregunta la gente sobre Python?

¿httpx también funciona?

Sí. En httpx 0.28 y posteriores, pasa proxy="http://USERNAME-country-us-state-il-city-chicago:[email protected]:7777" a httpx.Client(). Las versiones anteriores usaban un argumento proxies.

¿Se ejecutaron estos ejemplos contra el gateway?

Se verifica su sintaxis con python -I -m py_compile en Python 3.10+, con USERNAME y PASSWORD como marcadores de posición. Ejecútalos con tus propias credenciales.

¿Cómo obtengo el ASN de la IP de salida?

El campo org de la respuesta de ipinfo.io empieza por él ("AS7922 ..." para Comcast). Para la segmentación por ASN, añade -asn-7922 al nombre de usuario; consulta segmentación por ASN.

1 GB 1,50 US$ · sin KYC

Empezar