ProxyHealthList

ホーム / ユースケース / Python requests

Python requests でプロキシを使う方法

requests をプロキシ経由にする全方法 — HTTP・HTTPS・SOCKS5、環境変数、セッション、ローテーション — 毎時検証の無料一覧のプロキシで。

HTTP 一覧(TXT) SOCKS5 一覧(TXT)

基本の HTTP / HTTPS プロキシ

最も簡単な形 — 1 つのプロキシで httphttps の両方を処理でき、追加パッケージは不要です。

import requests

proxy = "http://1.2.3.4:8080"
r = requests.get(
    "https://httpbin.org/ip",
    proxies={"http": proxy, "https": proxy},
    timeout=10,
)
print(r.json())

SOCKS5 プロキシ

一度 SOCKS サポートを入れ、DNS をプロキシ経由で解決するため socks5h:// スキームを使います。

pip install "requests[socks]"
proxy = "socks5h://1.2.3.4:1080"
r = requests.get("https://httpbin.org/ip",
                 proxies={"http": proxy, "https": proxy}, timeout=10)

セッション全体にプロキシ

s = requests.Session()
s.proxies = {"http": "http://1.2.3.4:8080", "https": "http://1.2.3.4:8080"}
s.get("https://example.com")

環境変数

export HTTP_PROXY="http://1.2.3.4:8080"
export HTTPS_PROXY="http://1.2.3.4:8080"
python your_script.py

よくある質問

プロキシ経由のリクエストがタイムアウトするのはなぜ?

無料プロキシは不安定です。短い timeout を設定し、失敗したら次へ。

http:// と socks5h:// どちら?

HTTP は http://、SOCKS5 は socks5h://h が DNS をリモート解決。

httpx や aiohttp でも使える?

はい — 同じ host:port が同じ形式のプロキシ URL で動きます。

関連