In this Article
Pythonのrequestsライブラリは、HTTP呼び出しを行う最もシンプルな方法です。プロキシの追加も、パラメータ1つで行えます。スクレイピング、地域制限付きコンテンツのテスト、実際のユーザーに見せかける必要があるAPIクライアントの構築など、どの用途でも、proxies=引数を使ってリクエストをプロキシ経由でルーティングできます。このガイドでは、Python requestsでプロキシを使用する方法(HTTP、HTTPS、認証付き、SOCKS5、セッション、環境変数、ローテーション)を具体的に示し、さらに、2026年のPython requests向けおすすめプロキシ8選を紹介します。DataImpulseは$1/GBで、コストパフォーマンスの基準となるサービスです。
私はAndrii Byzovです。AIネイティブのフラクショナルCMOとして、日々Pythonのスクレイパーを開発しています。以下では、コピーしてそのまま使えるスニペット、SOCKS5のインストールとDNSリークの注意点、そして予算を投じる価値のあるプロバイダーを紹介します。
重要ポイント
proxies辞書を渡す 際は、httpとhttpsのキーを含めます:requests.get(url, proxies={"http": "...", "https": "..."})。- 認証情報はプロキシURLに含めます —
http://user:pass@host:port— 別途認証ステップは不要です。 Sessionを使用 すると、プロキシを一度設定して、多数のリクエストで(コネクションプーリングも活用して)再利用できます。- SOCKS5 にはインストールが1つ必要です:
pip install "requests[socks]"を実行し、その後socks5h://(h)を使用すると、DNS がプロキシ経由で解決され、実際の接続元が漏れません。 - DataImpulse はコストパフォーマンスに優れた選択肢です — レジデンシャル $1/GB の従量課金、データセンター $0.50/GB、モバイル $2/GB、195か国の90M+ IP、HTTP/HTTPS/SOCKS5、国/都市/ASNのターゲティングに対応。
Python requestsでプロキシを使う方法
1. 基本的な認証付きHTTP/HTTPSプロキシ
import requests
proxies = {
"http": "http://YOUR_LOGIN__cr.us:[email protected]:823",
"https": "http://YOUR_LOGIN__cr.us:[email protected]:823", # __cr.us = US
}
r = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=30)
print(r.json()) # confirm the egress IP
両方のキーは同じプロキシを指し、URL内の認証情報が自動的に使用されます。必ずtimeoutを設定してください。パスワードに特殊文字(@ : # /)が含まれる場合は、先にurllib.parse.quote()でURLエンコードしてください。
2. Session(プロキシを一度設定して使い回す)
session = requests.Session()
session.proxies = proxies
session.get("https://example.com/page1")
session.get("https://example.com/page2") # same proxy, pooled connections
3. SOCKS5(一度インストールしてDNSリークを回避)
# pip install "requests[socks]"
proxies = {
"http": "socks5h://YOUR_LOGIN__cr.us:[email protected]:824",
"https": "socks5h://YOUR_LOGIN__cr.us:[email protected]:824",
}
requests.get("https://httpbin.org/ip", proxies=proxies, timeout=30)
ホスト名がプロキシ側で解決されるように、socks5h(h付き)を使用してください。通常のsocks5はローカルで解決されるため、実際の接続元が判明するおそれがあります。DataImpulseはポート824でSOCKS5を提供しています。
4. 環境変数とローテーション
# env vars (requests honors these automatically):
# export HTTPS_PROXY="http://YOUR_LOGIN__cr.us:[email protected]:823"
# rotation: with a rotating gateway each request already gets a fresh IP
for _ in range(5):
print(requests.get("https://httpbin.org/ip", proxies=proxies, timeout=30).json())
DataImpulseのローテーション型レジデンシャルゲートウェイでは、各リクエストが自動的に新しいIPから送信されるため、プロキシリストを管理する必要はありません。静的リストを自分でローテーションする場合は、リクエストごとにrandom.choice()でプロキシを選択してください。
Python requests向けおすすめプロキシ早見表
| プロバイダー | requestsでの最適用途 | レジデンシャル価格 | プロトコル | 特長 |
|---|---|---|---|---|
| DataImpulse | 最高のコストパフォーマンス、スクリプトとスクレイピング | $1/GB PAYG | HTTP/HTTPS/SOCKS5 | 90M+ プール、認証付きSOCKS5、無期限 |
| Bright Data | エンタープライズ + マネージド | プロモーション時は約$4/GB、通常は$8 | HTTP/HTTPS/SOCKS5 | Web Unlocker、SERP API、データセット |
| Oxylabs | エンタープライズ向けSLA | $6/GBから | HTTP/HTTPS/SOCKS5 | 175M+ プール、スクレイパーAPI |
| Decodo | ミッドマーケット、包括的な地域ターゲティング | $3.75/GB (~$2 at 1TB+) | HTTP/HTTPS/SOCKS5 | 115M+ プール、最大24時間のスティッキー |
| IPRoyal | 長時間スティッキーセッション | $7.35/GBから | HTTP/HTTPS/SOCKS5 | 最大7日間のスティッキー; 手頃なPAYG |
| SOAX | レジデンシャル + モバイルの組み合わせ | Starterは$3.60/GB | HTTP/HTTPS/SOCKS5 | 155M+ レジデンシャル、33M+ モバイル |
| Webshare | 低予算 / セルフサービス | レジデンシャルは$3.50/moから、DCは$2.99/mo | HTTP/SOCKS5 | 無料プラン、最安クラスのデータセンター |
| NetNut | ISPレジデンシャルの安定性 | $3.53/GBから | HTTP/HTTPS | コンシューマーISPの静的IP |

おすすめ候補の概要
DataImpulse は、Python requestsを使う用途におけるコストパフォーマンスの基準です。レジデンシャルは従量課金で $1/GB(データセンターは $0.50/GB、モバイルは $2/GB)、195 か国に 90M+ IP、HTTP/HTTPS と認証付き SOCKS5 に対応し、ユーザー名で国/都市/ASNのターゲティングを指定できます。トラフィックに有効期限がないため、開発中の利用でサブスクリプションを無駄に消費することがありません。公表成功率は 99.51%、G2 は 4.8/5、24/7 の有人サポートを提供しています。requests を使った大規模スクレイピングでは、成功したリクエストあたりのコストを最も抑えやすい選択肢です。
Bright Data はエンタープライズ向けの有力候補(レジデンシャルは通常約$8/GB、プロモーション時は約$4/GB)で、Web Unlocker、SERP API、データセットを備えています。Oxylabs($6/GBから、175M+ プール)は SLAを重視する選択肢です。Decodo($3.75/GB から、最大24時間のスティッキー)は、バランスの取れたミッドマーケット向けの選択肢です。IPRoyal($7.35/GB から、最大 7 日間のスティッキー)は、長時間にわたりセッションの安定性が求められるスクリプトに適しています。SOAX($3.60/GB、155M+ レジデンシャル + 33M+ モバイル)は、充実したモバイルIPプールを利用できます。Webshare(無料プラン、データセンターは$2.99/moから)は低予算のセルフサービス入門向けで、NetNut($3.53/GB から)は ISP レジデンシャルの安定性を重視する選択肢です。いずれも proxies= 引数で利用できます。
Python requestsでプロキシを使う際によくあるミス
socks5h://ではなくsocks5://を使用する — 通常のsocks5はDNSをローカルで解決するため、実際の接続元が漏れる可能性があります。socks5hを使用してください。pip install "requests[socks]"を忘れる — これがないと、socks5プロキシURLで「Missing dependencies for SOCKS support」エラーが発生します。timeoutがない。 応答しないプロキシによって、リクエストがいつまでも完了しないことがあります。必ずtimeout=を渡してください。- SSLエラーを「修正」するために
verify=Falseを使用する — これは中間者攻撃のリスクを隠してしまいます。根本原因を修正してください。 - ボット対策の施された対象サイトでデータセンターIPを使う — すぐにブロックされるおそれがあります。アンチボット対策が強いサイトにはレジデンシャルを使用し、現実的なヘッダー(User-Agent)と組み合わせてください。
Requestsでのローテーションプロキシとスティッキープロキシ
広範なスクレイピングには、ローテーション型レジデンシャルゲートウェイが理想的です。各リクエストで新しいIPが割り当てられるため、シンプルなループだけでIP管理なしにスクレイピングをプール全体へ分散できます。ステートフルなフロー(ログイン後に追加の呼び出しを行うなど)では、同じIPとCookieが一連の処理中に維持されるよう、スティッキープロキシでSessionを使用してください。ほとんどのrequestsスクリプトはステートレスなため、通常はローテーションがデフォルトです。
Python requestsにはどのプロキシタイプを選ぶべきか: レジデンシャル、データセンター、モバイル
- Residential ($1/GB) — ボット対策が厳しい対象サイト(EC、SERPs、ソーシャル)向けの標準選択肢です。1つ選ぶなら、これを選んでください。
- Mobile ($2/GB) — 最も対策が厳しい対象サイトやモバイルWeb環境向けの実際の携帯通信事業者のIPです。
- Datacenter ($0.50/GB) — 保護が厳しくない用途、API、自社インフラ向けに最も安価で高速です。ボット対策が厳しいサイトには向けないでください。
DataImpulseは従量課金アカウント1つで3種類すべてを提供しているため、1つのスクリプトで、ユーザー名とエンドポイントを指定して、各リクエストを適切な種類のプロキシへルーティングできます。
DataImpulse + Python Requestsの始め方
ステップ 1. DataImpulseアカウントを作成し、レジデンシャルプロキシの認証情報を取得します。$5 / 5GBの初回プランは有効期限がなく、実際のテスト予算として使えます。
ステップ 2. http://YOUR_LOGIN__cr.us:[email protected]:823でproxies辞書を作成し、requests.get(..., proxies=proxies, timeout=30)に渡して、ジオターゲティング用にユーザー名へ国コードを追加します。SOCKS5には、pip install "requests[socks]"の後にsocks5h://...:824を使用します。
ステップ 3. 多数の呼び出しにはSessionを使用し、ローテーションにはループを使い、現実的なヘッダーを追加します。DataImpulseのチュートリアルとレジデンシャルプロキシページをご覧ください。
FAQ
Python requestsでプロキシを使用するにはどうすればよいですか?
呼び出しにproxies辞書を渡します:requests.get(url, proxies={"http": "http://user:pass@host:port", "https": "http://user:pass@host:port"})。URL内の認証情報は自動的に使用されます。DataImpulseの場合:http://YOUR_LOGIN__cr.us:[email protected]:823。リクエスト間でプロキシを再利用するにはSessionを使用します。
Python requestsはSOCKS5プロキシに対応していますか?
はい、追加機能をインストールすれば対応します:pip install "requests[socks]"。その後、proxies辞書でsocks5h://user:pass@host:port URLを使用します。認証付きSOCKS5も機能します。DNSがプロキシ経由で解決されるよう、必ずsocks5h(h付き)を使用してください。通常のsocks5はローカルで解決され、接続元が漏れる可能性があります。DataImpulseはポート824でSOCKS5を提供しています。
Python requestsに最適なプロキシは何ですか?
防御されたターゲットにはレジデンシャルプロキシがおすすめです。DataImpulseは$1/GBで、コストパフォーマンスに優れた選択肢です(HTTP/HTTPS/SOCKS5、90M+ IP、認証付きSOCKS5、有効期限のないトラフィック)。Bright DataとOxylabsはエンタープライズ向けの選択肢です。Webshareは開始コストが最も安価です。いずれもproxies=引数で動作します。現実的なヘッダーとタイムアウトを組み合わせてください。
Python requestsでプロキシをローテーションするにはどうすればよいですか?
最も簡単な方法は、proxies辞書をローテーション型レジデンシャルゲートウェイ(DataImpulse)に向けることです。各リクエストで新しいIPが自動的に割り当てられます。静的リストをローテーションするには、プロキシURLのリストを保持し、リクエストごとにrandom.choice()で1つ選ぶか、順番に循環させます。状態を保持するフローでは、ローテーションする代わりに、1つの固定プロキシをSession内で保持します。
requestsプロキシで「Missing dependencies for SOCKS support」というエラーが出るのはなぜですか?
SOCKS追加機能をインストールせずにsocks5プロキシURLを使用しています。pip install "requests[socks]"を実行してください(PySocksもインストールされます)。その後、socks5h:// URLが機能します。HTTP/HTTPSプロキシでは追加インストールは不要です。
Python requests用プロキシの費用はいくらですか?
レジデンシャルプロキシはGB単位で課金されます。DataImpulseは$1/GB(最安水準)、NetNutは$3.53から、SOAXは$3.60、Decodoは$3.75、Oxylabsは$6から、IPRoyalは$7.35です。Webshareは$3.50/moからの低価格サブスクリプションを提供しています。1ページの取得に必要なデータ量はGBのごく一部にすぎないため、大量スクレイピングでは、GB単位のレジデンシャルのほうがレコード単位のマネージドAPIよりはるかに安価です。マネージド型のサービスは、最も対策が厳しい対象サイトに適しています。
