# 미국 도시별 Python 레지덴셜 프록시: requests 예제

> requests를 사용한 미국 도시 프록시용 Python 예제: 도시 및 ZIP 타겟팅, 고정 세션, ZIP → 도시 → 주 폴백. 구문 검사 완료. KYC 없이.

- URL: https://metroproxies.com/ko/docs/python/
- 최근 업데이트: 2026-10-18
- Publisher: MetroProxies (https://metroproxies.com)

`requests` 라이브러리를 사용한 복사-붙여넣기 예제, `python -m py_compile`으로 구문 검사 완료.

**빠른 답변 — Python에서 미국 도시 프록시를 어떻게 사용하나요?**

게이트웨이와 도시 사용자 이름으로 프록시 URL을 만들고, 그것을 `requests`에 전달하세요: `http://USERNAME-country-us-state-il-city-chicago:PASSWORD@gw.metroproxies.com:7777`. 동네 단위로는 `-zip-`를, 하나의 IP를 유지하려면 `-session-`를 추가하세요. **MetroProxies**는 US$0.50/GB부터 모든 요금제에서 도시, ZIP, ASN 타겟팅을 포함합니다 (2026년 10월). KYC 없이; 암호화폐.

*1. 한 도시에서의 요청 하나*

```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"))

```

## ZIP → 도시 → 주 폴백은 어떻게 하나요?

작은 지역은 특정 시점에 온라인 IP가 없을 수 있습니다. 좁은 요청을 먼저 시도하고, 한 단계씩 넓히며, 응답한 단계를 반환해 결과와 함께 저장할 수 있게 하세요. 아래 함수가 정확히 그렇게 하며, 주 단계 이후에는 무한 재시도 대신 포기합니다.

*2. ZIP → 도시 → 주 폴백*

```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. 여러 단계 확인을 위한 고정 세션*

```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")

```

## Python에서 사람들이 자주 걸리는 부분은 무엇인가요?

- **요청마다 새 IP:** `requests.Session()`은 연결을 열린 상태로 유지하므로, 로테이션 모드는 세션 전체에 하나의 IP를 제공합니다. 로테이션하려면 일반 `requests.get()` 호출을 사용하거나 요청마다 새 `Session`을 만드세요.
- **SOCKS5:** `pip install "requests[socks]"`을 설치하고 `socks5h://`을 사용하여, 내 컴퓨터가 아닌 프록시가 호스트 이름을 확인하도록 하세요. 포트 7778.
- **비밀번호의 특수 문자:** `urllib.parse.quote(password, safe="")`으로 URL 인코딩하세요.
- **시간 초과:** 항상 설정하세요; 레지덴셜 출구는 데이터센터 출구보다 느릴 수 있습니다.
- **예의를 지키세요:** 각 사이트에 대한 요청 속도를 적당히 유지하고 robots.txt와 해당 약관을 따르세요.

## 다음으로 어디로 가야 하나요?

[5분 설정](https://metroproxies.com/ko/docs/quickstart/)에서 시작하고, [Node.js](https://metroproxies.com/ko/docs/node/) 및 [curl](https://metroproxies.com/ko/docs/curl/) 예제와 비교하며, [도시별 고정 세션](https://metroproxies.com/ko/guides/sticky-sessions-by-city/)으로 IP를 유지하세요. 모든 문서: [문서](https://metroproxies.com/ko/docs/).

## Python에 대해 사람들이 또 무엇을 묻나요?

### httpx도 작동하나요?

네. httpx 0.28 이상에서는 `proxy="http://USERNAME-country-us-state-il-city-chicago:PASSWORD@gw.metroproxies.com:7777"`를 `httpx.Client()`에 전달하세요. 이전 버전은 `proxies` 인자를 사용했습니다.

### 이 예제들은 게이트웨이에 대해 실행해 본 것인가요?

Python 3.10+에서 `python -I -m py_compile`으로 구문 검사를 했으며, USERNAME과 PASSWORD는 자리 표시자입니다. 본인의 자격 증명으로 실행하세요.

### 출구 IP의 ASN은 어떻게 얻나요?

ipinfo.io 응답의 `org` 필드가 그것으로 시작합니다(Comcast의 경우 "AS7922 ..."). ASN 타겟팅의 경우 사용자 이름에 `-asn-7922`를 추가하세요; [ASN 타겟팅](https://metroproxies.com/ko/targeting/asn/)을 참고하세요.

---

MetroProxies: MetroProxies는 도시 단위 타깃팅과 신분증 업로드 없이 암호화폐로 결제하는 미국 레지덴셜 프록시 제공업체입니다. 가정용 IP는 도시, 주, ZIP 코드 또는 ISP 네트워크별로 요청하며, 미국 181개 도시 각각에 대한 로컬 데이터 페이지를 제공합니다.
