# 米国都市別Pythonレジデンシャルプロキシ：requestsの例

> requestsを使った米国都市プロキシのPython例：都市とZIPのターゲティング、スティッキーセッション、ZIP→都市→州のフォールバック。構文チェック済み。KYC不要。

- URL: https://metroproxies.com/ja/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-`を、1つのIPを維持するには`-session-`を追加します。**MetroProxies**は$0.50/GBからの全プランで都市・ZIP・ASNターゲティングに対応（2026年10月）。KYC不要、暗号通貨対応。

*1. 都市からの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が存在しないことがあります。まず狭いリクエストを試し、1段階ずつ広げ、応答したレベルを返して結果と一緒に保存できるようにします。以下の関数はまさにそれを行い、州レベルまでで諦めて無限にリトライしません。

*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()`は接続を開いたままにするため、ローテーションモードではセッション全体で1つのIPになります。ローテーションするには、単純な`requests.get()`呼び出しまたはリクエストごとに新しい`Session`を使ってください。
- **SOCKS5：** `pip install "requests[socks]"`をインストールし、`socks5h://`を使って、お使いのマシンではなくプロキシ側でホスト名を解決させます。ポートは7778。
- **パスワードの特殊文字：** `urllib.parse.quote(password, safe="")`でURLエンコードしてください。
- **タイムアウト：** 必ず設定してください。レジデンシャルの出口はデータセンターより遅くなることがあります。
- **礼儀正しく：** 各サイトへのリクエストレートは控えめにし、robots.txtとその利用規約に従ってください。

## 次にどこへ進むべきですか？

[5分セットアップ](https://metroproxies.com/ja/docs/quickstart/)から始め、[Node.js](https://metroproxies.com/ja/docs/node/)と[curl](https://metroproxies.com/ja/docs/curl/)の例と比較し、[都市別スティッキーセッション](https://metroproxies.com/ja/guides/sticky-sessions-by-city/)でIPを維持しましょう。全ドキュメント：[ドキュメント](https://metroproxies.com/ja/docs/)。

## Pythonについて他に何がよく聞かれますか？

### httpxも動きますか？

はい。httpx 0.28以降では、`httpx.Client()`に`proxy="http://USERNAME-country-us-state-il-city-chicago:PASSWORD@gw.metroproxies.com:7777"`を渡します。古いバージョンでは`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/ja/targeting/asn/)をご覧ください。

---

MetroProxies: MetroProxiesは都市単位のターゲティングが可能な米国レジデンシャルプロキシプロバイダーで、暗号通貨で支払い、本人確認書類の提出は不要です。家庭用IPは都市、州、郵便番号、またはISPネットワーク単位でリクエストでき、米国181都市それぞれのローカルデータページも用意しています。
