Python Requestsでプロキシを使用する方法(HTTP/HTTPS & Sessionプーリング)

更新日:

Pythonの requests ライブラリは、'http' と 'https' の両スキームを http://user:pass@ip:port にマッピングする proxies 辞書を通じて VinaProxy の認証済みプロキシを適用できます。この辞書を requests.Session() に紐付けることで、下位のTCPソケットが再利用され、低オーバーヘッドで高速なWebスクレイピングが可能になります。

Python Requests · HTTP Proxy Format
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}
専用IPv4(データセンター)
🇺🇸 United States
在庫あり
最安
₫20,000 / IP / 月
≈ $0.74 · VND決済
ボリュームディスカウント
  • 1 IP₫40,000
  • 5+ IP₫35,000
  • 10+ IP₫25,000
  • 20+ IP₫25,000
  • 50+ IP₫25,000
  • 100+ IP₫25,000
  • 200+ IP₫25,000
  • 500+ IP₫25,000
  • 1000+ IP₫22,000
  • 2000+ IP₫20,000
United Statesを購入
専用IPv4(データセンター)
🇻🇳 Vietnam
在庫あり
最安
₫20,000 / IP / 月
≈ $0.74 · VND決済
ボリュームディスカウント
  • 1 IP₫40,000
  • 5+ IP₫35,000
  • 10+ IP₫25,000
  • 20+ IP₫25,000
  • 50+ IP₫25,000
  • 100+ IP₫25,000
  • 200+ IP₫25,000
  • 500+ IP₫25,000
  • 1000+ IP₫22,000
  • 2000+ IP₫20,000
Vietnamを購入
プラットフォーム別プロキシ:web-scrapingseo-rank-trackingamazon

proxies辞書の書式設定とSessionの再利用

URLごとに個別に requests.get() を呼び出すと、リクエストのたびに新しいTCP接続とTLSハンドシェイクが発生します。プロキシを session = requests.Session() にバインドすることで、連続するリクエスト間でプロキシトンネル接続が維持されます。

Requestsパラメータ推奨するコード構文技術的な目的
'http' キー'http://user:pass@ip:port'通常のHTTPリクエストをプロキシ経由でルーティング
'https' キー'http://user:pass@ip:port'http:// スキームを指定し、内部の urllib3 がTLS用のHTTP CONNECTトンネルを発行
timeout タプルtimeout=(5, 15)5秒の接続タイムアウトと15秒の読み取りタイムアウトでワーカーの停止を防止
プールローテーションitertools.cycle(proxy_list)契約した専用固定IPプール全体に均等にリクエストを分散

urllib3およびProxyErrorの一般的な落とし穴

  • プロキシポートが明示的にTLS-over-TLSを要求しない限り、'http' と 'https' の両キーのURLスキームには常に http://(https:// ではなく)を使用してください
  • パスワードに特殊文字が含まれる場合は、urllib.parse.quote(password, safe='') を使用してURLエンコードしてください
  • 407 Proxy Authentication Required エラーは、URL文字列内のユーザー名またはパスワードが管理画面の情報と一致していないことを意味します
  • httpx.Client(proxy='http://user:pass@ip:port') や aiohttp の session.get(url, proxy=...) でも同様の形式で動作します

手順

  1. 1

    ip:port:user:passをURL形式に変換

    当社のプロキシフォーマット変換ツールを使用して、VinaProxy リストを http://user:pass@ip:port 文字列に変換します。

  2. 2

    proxies辞書を定義

    Pythonコード内で proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'} を定義します。

  3. 3

    requests.Session()インスタンスに紐付け

    s = requests.Session() を初期化し、s.proxies.update(proxies) を呼び出して接続プールを維持します。

  4. 4

    テストリクエストで出口IPを確認

    print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json()) を実行して、プロキシIPが反映されているか検証します。

よくある質問

なぜ'https'キーでも'http://user:pass@ip:port'と記述するのですか?

http:// プレフィックスは、プロキシサーバー本体への接続方法(標準のHTTP CONNECT経由)を urllib3 に指示するためのものであり、対象の https:// サイトとの通信自体は完全にエンドツーエンドでTLS暗号化されます。

Pythonで25個の固定プロキシをリクエストごとに巡回させる方法は?

25個のプロキシURLを pool = itertools.cycle(PROXIES) に読み込み、リクエストごとに proxies={'http': p, 'https': p} を渡して、適度なウェイトを設けて実行してください。

VinaProxy はPythonスクレイピングでのデータ転送量を従量課金しますか?

いいえ。専用IPv4および固定住宅ISPのすべてのプランで、帯域幅・転送量は無制限です。

通信量無制限のPythonスクレイピング用プロキシプールを構築

世界7カ国の専用IPv4および固定住宅ISPプロキシを即時提供。

Python用プロキシを購入

関連記事

プラットフォーム別プロキシ
Webスクレイピング用プロキシ:24時間365日クローラー向け無制限専用IPv4&ISPプール
Python、Playwright、Selenium、Scrapy向け高速HTTP(S)専用IPv4&固定ISPプロキシ。月間帯域幅無制限。
ツール別プロキシ設定
Playwright でプロキシを設定する方法(ブラウザ全体 & コンテキスト別認証)
Node.js と Python の Playwright で認証付き HTTP(S) プロキシを設定。単一ブラウザ内の各 BrowserContext に独立した固定静的 IP を割り当てます。
ツール別プロキシ設定
Python Scrapy でプロキシを設定・ローテーションする方法
Python Scrapy で HttpProxyMiddleware、request.meta['proxy']、IP 単位の同時実行制御を活用した認証付き HTTP(S) プロキシ設定手順。
無料ツール
プロキシ形式一括変換ツール(100% ブラウザ内完結・安心設計)
100% クライアント側で動作するプロキシ一括フォーマッター。ip:port:user:pass、user:pass@ip:port、http:// URL、SOCKS5 URI、JSON配列、FoxyProxy形式間で相互変換。
プラットフォーム別プロキシ
SEO&SERP順位追跡用プロキシ:7か国の正確な検索結果順位をリアルタイム監視
地域別キーワード順位の追跡、Geoリダイレクトの監査、Screaming Frogによるクローリングを無制限の専用IPv4&固定ISPプロキシで実現。
プラットフォーム別プロキシ
Amazon用プロキシ:セラーセントラル・KDP・Merchを固定IPで完全分離
セラーセントラル、KDP、Merch on Demandにおける関連アカウント停止を防止。アメリカの固定ISPおよびイギリス・日本の専用IPv4プロキシ。
IPV4 · united states
米国専用IPv4プロキシ:高速かつ専用のアメリカデータセンターIP
米国専用IPv4プロキシ:スクレイピング、順位計測、広告確認、Amazon調査に。固定IP、1人1IP、帯域無制限、即時有効化。
IPV4 · vietnam
ベトナム専用IPv4プロキシ:大量アカウントと自動化のための低コスト専用IP
ベトナム専用IPv4プロキシ:Facebook運用、Shopeeサブ店舗、自動化ツール、google.com.vn監視向け低コストIP。帯域無制限。