ProxyHealthList

ホーム / ユースケース / Web スクレイピング

Web スクレイピング用の無料プロキシ

単一 IP でのスクレイピングはすぐ BAN されます。新鮮な検証済み一覧をローテーションすればリクエストを多数の IP に分散できます — 毎時検証の無料一覧での方法を紹介します。

一覧をダウンロード(JSON) 高速プロキシ(TXT)

なぜプロキシをローテーションするのか

多くのサイトはリクエストが多すぎる IP を制限・BAN します。プロキシプールは各リクエスト(またはバッチ)を別のアドレスから出すため、どの IP もレート制限に達しません。無料プロキシはどれも数分で死にうるので、信頼できる方法は 1 つに頼らず多数の検証済みプロキシでローテーション+リトライすることです。

検証済み一覧を Python でローテーション

この例は JSON 一覧(速い順)を読み込み、順に回して、失敗したら次のプロキシで再試行します。

import requests

LIST = "https://raw.githubusercontent.com/xyzs996/free-proxy-health-list/main/proxies/all/data.json"

# 1
pool = requests.get(LIST, timeout=15).json()

def scheme(p):
    proto = p["protocol"]; host = p["proxy"]
    return f"socks5h://{host}" if proto.startswith("socks5") else \
           f"socks4://{host}" if proto.startswith("socks4") else f"http://{host}"

def fetch(url):
    for p in pool:                       # 2
        px = scheme(p)
        try:
            r = requests.get(url, proxies={"http": px, "https": px}, timeout=8)
            if r.ok:
                return r.text
        except requests.RequestException:
            continue                     # 3
    raise RuntimeError("all proxies failed")

print(fetch("https://httpbin.org/ip")[:200])

礼儀正しく

  1. リクエスト間にジッタ付き遅延(例:1〜5 秒)を入れる。
  2. 現実的な User-Agent を設定する。
  3. 対象サイトの robots.txt と規約を守る。
  4. 429 Too Many Requests ではバックオフ(長めに待つ)。
  5. 一覧を定期的に更新する — 毎時再検証されます。

使用が許可されたデータだけを取得してください。アクセス制御の回避や規約違反にプロキシを使わないでください。

よくある質問

無料プロキシは Web スクレイピングに使えますか?

公開ページの中小規模スクレイピング、テスト、試作に最適です。個々のプロキシはすぐ死ぬので、多数でローテーション&リトライを。

IP BAN を避けるには?

リクエストごとにローテーション、遅延とジッタ、現実的な User-Agent、robots.txt 遵守、429 でバックオフ。

スクレイピングは HTTP か SOCKS5 か?

どちらも可。HTTP が最も簡単、SOCKS5 は DNS をプロキシ経由で解決。

関連