クイックアンサー
Pythonで米国プロキシをどう使う?
StatesideIPは、KYC不要の米国レジデンシャルプロキシと4Gモバイルプロキシのプロバイダーで、Python用米国プロキシを1つのゲートウェイgw.statesideip.com経由で提供します。HTTP/HTTPSはポート7777、SOCKS5はポート7778です。場所情報はユーザー名に入れ、例としてUSERNAME-country-us-state-nyのように指定します。レジデンシャルトラフィックは2026年10月時点で$0.52/GBから開始。KYC不要—本人確認書類、セルフィー、書類提出は不要。暗号通貨で支払い可能。
Python用接続詳細
| ゲートウェイホスト | gw.statesideip.com |
|---|---|
| HTTP/HTTPSポート | 7777 |
| SOCKS5ポート | 7778 |
| ユーザー名の形式 | USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes} |
| プロトコル | HTTP、HTTPS(CONNECT)、SOCKS5 |
| ローテーション | リクエストごとに新しいIP、または同じIPを維持するスティッキーセッション |
| スティッキーセッション | 1〜120分、ttlパラメータでセッションごとに設定 |
| ここで使われるテストエンドポイント | https://api.ipify.org?format=json |
| 価格 | $0.52/GBから; $1.50(1 GB向け) |
| KYC不要および支払い | KYC不要 — ID不要、自撮り不要、書類不要。暗号通貨で支払い。 |
Pythonで米国プロキシを使う前に何が必要ですか?
Python 3、pip、そしてStatesideIPのユーザー名とパスワードが必要です。セットアップは5ステップで完了します。
小規模プランを購入
1 GBプランは価格ページ]で$1.50の料金で、BTC、USDT、USDC、ETH、LTC、またはSOLで支払えます。
認証情報をコピーしてください
確認済みの暗号通貨残高からプランを購入すると、認証情報がすぐにダッシュボードに表示されます。以下のコードはそれらを
USERNAMEとPASSWORDとして書き込みます。ライブラリをインストールする
ブラウザの例ではまず
pip install requests httpx scrapy playwrightを実行し、次にplaywright install chromiumを実行します。ユーザー名を作成
必要なターゲティングセグメントだけを追加してください。例えば
USERNAME-country-us-state-tx-city-houston。値はすべて小文字で、スペースはアンダースコアにします。出口IPを確認する
プロキシ経由で
https://api.ipify.org?format=jsonをリクエストしてください。返されるIPはターゲットサイトに見える米国のIPです。
Python requestsで米国プロキシを使うには?
proxies引数のhttpとhttpsの両方に同じプロキシURLを渡します。HTTPSターゲットでもプロキシURLのhttp://スキームは維持してください:ゲートウェイはCONNECTでHTTPSトンネルを開きます。SOCKS5の場合はrequests[socks]をインストールしsocks5h://を使い、DNSルックアップも米国側で行います。
import requests
HOST = "gw.statesideip.com"
USER = "USERNAME-country-us-state-ny" # rotating New York State IP
PASSWORD = "PASSWORD"
proxy = f"http://{USER}:{PASSWORD}@{HOST}:7777"
r = requests.get("https://api.ipify.org?format=json",
proxies={"http": proxy, "https": proxy}, timeout=30)
print(r.json())
# SOCKS5 (pip install "requests[socks]"); socks5h resolves DNS through the proxy
socks = f"socks5h://{USER}:{PASSWORD}@{HOST}:7778"
r = requests.get("https://api.ipify.org?format=json",
proxies={"http": socks, "https": socks}, timeout=30)
print(r.json())リクエストごとにIPを回転させるべき?それとも固定セッションを使うべき?
独立したページ取得にはリクエストごとに回転させ、1つのIPを維持すべきタスクには固定セッションを使います。sessionセグメントなしのユーザー名はリクエストごとに新しいIPを取得します。session-{id}とttl-{minutes}を追加すると1〜120分、ttlパラメータでセッションごとに設定の間は1つのIPを維持します。
- 回転: 検索結果のチェックやカタログ価格の確認など、多数の米国IPに分散させる場合。
- 固定: 自サイトの複数ページフロー、例えばカートからチェックアウトまでのQAテスト。
回転ゲートウェイは通常、接続ごとに出口IPを割り当てます。複数のリクエストが同じIPを共有する場合、クライアントが接続を再利用しています。Sessionなしで新しいrequests.get()呼び出しは新しい接続を開きます。
import uuid
def proxy_url(state=None, city=None, zip_code=None, session=None, ttl=10):
parts = ["USERNAME", "country-us"]
if state:
parts.append(f"state-{state}")
if city:
parts.append(f"city-{city}")
if zip_code:
parts.append(f"zip-{zip_code}")
if session:
parts += [f"session-{session}", f"ttl-{ttl}"]
user = "-".join(parts)
return f"http://{user}:[email protected]:7777"
rotating = proxy_url(state="tx", city="houston") # new IP per request
sticky = proxy_url(zip_code="10001", session=uuid.uuid4().hex[:8], ttl=30) # one IP, 30 minhttpx asyncで多くのリクエストを同時に送るには?
proxy引数付きの1つのhttpx.AsyncClientを使い、同時リクエスト数はasyncio.Semaphoreで制限します。ターゲットサイトごとに約5リクエストの同時処理から始めて、エラー率が低い間だけ制限を上げてください。
以下の例ではkeep-aliveを無効にしているため、各リクエストは新しい接続を開き新しいIPを取得できます。固定セッションを使う場合はこの行を削除してください。最近のhttpxはproxy=を受け入れます。古いproxies=引数はhttpx 0.28で削除されました。
import asyncio
import httpx
PROXY = "http://USERNAME-country-us-state-ca:[email protected]:7777"
URLS = ["https://api.ipify.org?format=json"] * 20
async def fetch(client, sem, url):
async with sem: # caps requests in flight
r = await client.get(url)
r.raise_for_status()
return r.json()
async def main():
sem = asyncio.Semaphore(5)
limits = httpx.Limits(max_keepalive_connections=0) # new connection, new IP
async with httpx.AsyncClient(proxy=PROXY, limits=limits, timeout=30) as client:
results = await asyncio.gather(*(fetch(client, sem, u) for u in URLS),
return_exceptions=True)
for res in results:
print(res)
asyncio.run(main())リトライ、バックオフ、レート制限はどう扱う?
一時的な失敗のみリトライし、試行ごとに待機時間を長くしランダムジッターを加えます。タイムアウト、接続エラー、ステータスコード429、500、502、503、504でリトライします。サイトがRetry-Afterヘッダーを送信した場合は尊重してください。407はユーザー名またはパスワードの誤りなので絶対にリトライしないでください。
各サイトのrobots.txtと利用規約を尊重し、リクエスト頻度は通常のブラウジングに近づけてください。StatesideIPは銀行、政府、決済ポータルおよびSMTPポートをAcceptable Use Policy]でブロックしています。
import random
import time
import requests
RETRY_STATUS = {429, 500, 502, 503, 504}
def get_with_retries(url, proxies, attempts=5):
for attempt in range(attempts):
try:
r = requests.get(url, proxies=proxies, timeout=30)
if r.status_code == 407:
raise RuntimeError("407: check USERNAME and PASSWORD") # do not retry
if r.status_code not in RETRY_STATUS:
return r
ra = r.headers.get("Retry-After", "")
wait = int(ra) if ra.isdigit() else 2 ** attempt
except (requests.ConnectionError, requests.Timeout):
wait = 2 ** attempt
time.sleep(wait + random.uniform(0, 1)) # backoff plus jitter
raise RuntimeError(f"gave up on {url}")ScrapyでUSプロキシを使うには?
リクエストごとにmeta["proxy"]でプロキシを設定し、URL内にユーザー名とパスワードを入れます。Scrapyの組み込みプロキシミドルウェアがそれらをProxy-Authorizationヘッダーに変換します。ROBOTSTXT_OBEY = Trueはそのままにして、サイトの応答が遅い場合はAutoThrottleでクロール速度を落としましょう。
# settings.py
ROBOTSTXT_OBEY = True
CONCURRENT_REQUESTS_PER_DOMAIN = 4
AUTOTHROTTLE_ENABLED = True
RETRY_TIMES = 3
RETRY_HTTP_CODES = [429, 500, 502, 503, 504]
# spiders/ip_check.py
import scrapy
PROXY = "http://USERNAME-country-us-state-fl-city-miami:[email protected]:7777"
class IpCheckSpider(scrapy.Spider):
name = "ip_check"
start_urls = ["https://api.ipify.org?format=json"]
def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(url, meta={"proxy": PROXY}, dont_filter=True)
def parse(self, response):
yield {"ip": response.json()["ip"]}PlaywrightでUSプロキシを使うには?
ブラウザ起動時にサーバー、ユーザー名、パスワードを含むproxy辞書を渡します。ブラウザは1ページで多くのファイルを読み込むため、スティッキーセッションを使いましょう:1ページビューで1つのUS IPを維持します。新しいタスクごとに新しいセッションIDを使います。
import asyncio
from playwright.async_api import async_playwright
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch(proxy={
"server": "http://gw.statesideip.com:7777",
"username": "USERNAME-country-us-state-il-city-chicago-session-pw1-ttl-15",
"password": "PASSWORD",
})
page = await browser.new_page()
await page.goto("https://api.ipify.org?format=json")
print(await page.text_content("body"))
await browser.close()
asyncio.run(main())Pythonのプロキシリクエストが失敗する理由は?
ほとんどの失敗は認証情報の誤り、ターゲットが狭すぎる、またはクライアントが接続を再利用していることが原因です。
- 407 Proxy Authentication Required: ユーザー名かパスワードが間違っているか、セグメントのスペルミスがあります。
USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}と比較してください。 - ZIPやASNターゲットでのタイムアウト: 狭すぎるフィルターは利用可能なIPを減らします。都市や州まで広げるかタイムアウトを延長してください。
- 毎回同じIPになる: クライアントが接続を維持しています。keep-aliveを無効にするか、
sessionセグメントを削除してください。 - SSLエラー: プロキシURLには
http://を使い、https://は使わないでください。
入門ガイドではcurlとNodeについても解説しています。
Python用USプロキシ:よくある質問
PythonでUSプロキシを使うならどのライブラリ?
単純なスクリプトならrequests、同時に多数リクエストするならhttpx、フルクロールにはScrapy、JavaScriptが必要なページにはPlaywrightを使いましょう。4つともStatesideIPゲートウェイのgw.statesideip.comでポート7777を使います。同じユーザー名形式でUSの州、市、ZIPコードを指定可能です。
Pythonでリクエストごとに新しいUS IPを取得するには?
ユーザー名からsessionセグメントを外します。例えばUSERNAME-country-us-state-gaです。StatesideIPはリクエストごとに新しいIPを割り当てます。クライアントが毎回新しい接続を開くことを確認してください:Sessionなしでrequests.get()を呼ぶか、httpxでkeep-aliveを無効にします。そうしないと複数リクエストが同じIPを共有する可能性があります。
タスク全体で同じUS IPを維持するには?
ユーザー名にsession-{id}とttl-{minutes}を追加します。例えばUSERNAME-country-us-zip-10001-session-job42-ttl-30です。そのセッションIDを使うすべてのリクエストは、設定したttlまで1つのIPを維持します。StatesideIPのスティッキーセッションは1〜120分、ttlパラメータでセッションごとに設定続きます。家庭用回線は早期に切断されることもあるので、コード内でリトライを入れてください。
PythonでSOCKS5プロキシは使えますか?
はい。requests[socks]をインストールするか、httpx用にhttpx[socks]を入れて、ポート7778のsocks5h://URLを使います。hはDNSルックアップをプロキシ経由にするため、USサイトがUS訪問者のように解決されます。HTTPとHTTPSは追加パッケージなしでポート7777で動作します。
StatesideIPで同時にどれくらいリクエストを送れますか?
ターゲットサイトごとに約5リクエストから始め、エラーが少ないうちは上限を上げてください。ほとんどの制限はターゲットサイト側にあるため、ステータス429を監視して負荷を調整しましょう。レジデンシャルプロキシは家庭回線上にあるため、データセンターより応答が遅いことを想定してください。ZIPやASNターゲットでは同時接続数を控えめに。
Pythonスクリプト用の認証情報にKYCは必要?
いいえ。認証情報はアカウントに付属し、本人確認は不要です:アカウント番号でログイン、メールアドレスは任意。暗号通貨(BTC、USDT、USDC、ETH、LTC、SOL)で支払い可能。その後、上記コードのUSERNAMEとPASSWORDのプレースホルダーにユーザー名とパスワードを貼り付けてください。無料トライアルなし — 最低チャージ額から支払う1GBプランでお試しください。残額は残高に残ります(有効期限なし・返金不可)。
Pythonコード用のUSプロキシ認証情報を取得する
$0.52/GBのレジデンシャルプロキシトラフィック、州、市、ZIP、ASNターゲティング対応。KYC不要—身分証もセルフィーも書類もなし。暗号通貨で支払い可能。