# Python-Residential-Proxys nach US-Stadt: requests-Beispiele

> Python-Beispiele für US-Stadt-Proxys mit requests: Targeting nach Stadt und ZIP, Sticky Sessions, ein Fallback von ZIP zu Stadt zu Bundesstaat. Syntaxgeprüft. Ohne KYC.

- URL: https://metroproxies.com/de/docs/python/
- Zuletzt aktualisiert: 2026-10-18
- Publisher: MetroProxies (https://metroproxies.com)

Copy-paste-Beispiele mit der `requests`-Bibliothek, syntaxgeprüft mit `python -m py_compile`.

**Kurze Antwort — Wie verwende ich einen US-Stadt-Proxy in Python?**

Baue die Proxy-URL aus dem Gateway und einem Stadt-Benutzernamen und übergib sie an `requests`: `http://USERNAME-country-us-state-il-city-chicago:PASSWORD@gw.metroproxies.com:7777`. Füge `-zip-` für ein Viertel hinzu oder `-session-`, um eine IP zu behalten. **MetroProxies** enthält Stadt-, ZIP- und ASN-Targeting in jedem Plan ab 0,50 $/GB (Oktober 2026). Ohne KYC; mit Krypto bezahlen.

*1. Eine Anfrage aus einer Stadt*

```python
import requests

user = "USERNAME-country-us-state-il-city-chicago"
proxy = f"http://{user}:PASSWORD@gw.metroproxies.com: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"))

```

## Wie falle ich von ZIP zu Stadt zu Bundesstaat zurück?

Kleine Orte haben zu einem bestimmten Zeitpunkt möglicherweise keine IP online. Versuche zuerst die engste Anfrage, erweitere Ebene für Ebene und gib die Ebene zurück, die geantwortet hat, damit du sie mit dem Ergebnis speichern kannst. Die folgende Funktion macht genau das und bricht nach der Bundesstaat-Ebene ab, statt endlos zu wiederholen.

*2. ZIP → Stadt → Bundesstaat Fallback*

```python
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. Eine Sticky Session für eine mehrstufige Prüfung*

```python
import requests

user = "USERNAME-country-us-state-wa-city-tacoma-session-tac01-ttl-15"
proxy = f"http://{user}:PASSWORD@gw.metroproxies.com: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")

```

## Welche Python-Details sorgen für Stolperfallen?

- **Neue IP pro Anfrage:** `requests.Session()` hält die Verbindung offen, sodass der Rotationsmodus eine IP für die gesamte Session liefert. Verwende einfache `requests.get()`-Aufrufe oder eine neue `Session` pro Anfrage, um zu rotieren.
- **SOCKS5:** Installiere `pip install "requests[socks]"` und verwende `socks5h://`, damit der Proxy Hostnamen auflöst, nicht dein Rechner. Port 7778.
- **Sonderzeichen im Passwort:** URL-encode sie mit `urllib.parse.quote(password, safe="")`.
- **Timeouts:** Setze immer einen; Residential-Exits können langsamer sein als Data-Center-Exits.
- **Sei höflich:** Halte die Anfragenrate pro Website moderat und befolge robots.txt und die Nutzungsbedingungen.

## Wohin sollte ich als Nächstes gehen?

Starte mit dem [Fünf-Minuten-Setup](https://metroproxies.com/de/docs/quickstart/), vergleiche mit den [Node.js](https://metroproxies.com/de/docs/node/)- und [curl](https://metroproxies.com/de/docs/curl/)-Beispielen und behalte IPs mit [Sticky Sessions nach Stadt](https://metroproxies.com/de/guides/sticky-sessions-by-city/). Alle Docs: [Dokumentation](https://metroproxies.com/de/docs/).

## Was fragen Leute sonst noch zu Python?

### Funktioniert httpx auch?

Ja. In httpx 0.28 und neuer übergib `proxy="http://USERNAME-country-us-state-il-city-chicago:PASSWORD@gw.metroproxies.com:7777"` an `httpx.Client()`. Ältere Versionen verwendeten ein `proxies`-Argument.

### Wurden diese Beispiele gegen das Gateway ausgeführt?

Sie sind mit `python -I -m py_compile` auf Python 3.10+ syntaxgeprüft, wobei USERNAME und PASSWORD Platzhalter sind. Führe sie mit deinen eigenen Zugangsdaten aus.

### Wie bekomme ich die ASN der Exit-IP?

Das `org`-Feld der Antwort von ipinfo.io beginnt damit ("AS7922 ..." für Comcast). Für ASN-Targeting füge `-asn-7922` zum Benutzernamen hinzu; siehe [ASN-Targeting](https://metroproxies.com/de/targeting/asn/).

---

MetroProxies: MetroProxies ist ein US-Residential-Proxy-Anbieter mit Targeting auf Stadtebene, zahlbar mit Krypto ohne Ausweis-Upload. Heim-IPs werden nach Stadt, Bundesstaat, Postleitzahl oder ISP-Netzwerk angefordert, mit einer Seite lokaler Daten für jede der 181 US-Städte.
