スクレイピングのための住宅用プロキシとデータセンタープロキシの比較
住宅用プロキシもデータセンタープロキシも、トラフィックが現れる送信元のアドレスを変えますが、両者は交換可能ではありません。データセンタープロキシは、データセンターでホストされたサーバーを経由して通信します。住宅用プロキシは、インターネットサービスプロバイダーが家庭用回線に割り当てたアドレスを経由して通信します。違いは速度、サイトがそのアドレスをどれだけ信頼するか、そしてそれぞれの運用コストに現れます。このガイドでは両者を比較し、スクレイパーにどちらが必要かを判断する簡単なテストを紹介します。
結論を先に
ターゲットが自動化対策を厳しくしておらず、高いスループットが必要で、寛大なレート方針のサイトからデータを集める場合は、データセンタープロキシを使ってください。ターゲットがアドレスの出所で評価している場合、特定の国や都市が必要な場合、またはデータセンターのアドレスが次々にブロックされる場合は、住宅用プロキシを使ってください。多くのプロジェクトは両方を使います。作業の大部分にはデータセンター、それ以外を受け付けないページには住宅用、という組み合わせです。
比較
信頼性。 サイトは、どのアドレス範囲がホスティング事業者に属するかを知っており、多くは既定でそれらのスコアを低くします。住宅用のアドレスは、他の一般の家庭の訪問者と同じに見えるため、最初からより良いスコアで始まります。信頼性は、住宅用を選ぶ最大の理由です。
速度。 データセンターの接続は通常、より速く安定しています。住宅用の接続は、一般消費者向けのネットワークを経由するため、遅く、切断されることもあります。住宅用のトラフィックでは、タイムアウトを長めにし、リトライを増やす計画を立ててください。
地域指定。 住宅用のプールは通常、国単位、さらに地域や都市単位まで細かく指定できることが多いです。サイトが所在地によって価格、在庫、コンテンツを変える場合は、これが重要になります。データセンターのプールは、より粗い指定になりがちです。
アドレスの安定性。 データセンターのアドレスは通常、評判を長く保つため、固定セッションに役立ちます。住宅用のアドレスは頻繁に変わるため、セッションの継続性はプロバイダーの品質に依存する度合いが高くなります。
リクエストあたりのコスト。 データセンタープロキシは、大量のボリュームでは一般に安価です。住宅用のトラフィックは料金体系が異なり、同じ数のリクエストでも通常は高くなります。どちらも安いと決めつけず、プロバイダーの現在の料金を確認してください。
公平なテストを行う
選ぶ確実な方法は、両方を実際のターゲットに対してテストすることです。テストは小さく、公平に保ちます。
- 実際の作業負荷を代表する10ページをターゲットから選ぶ。
- 同じスクリプトを、同じペースとヘッダーで、データセンタープールと住宅用プールの両方を通して実行する。
- 成功率、応答時間の中央値、ブロックやチャレンジページの数を測定する。
- 生の数値が最も良いものではなく、成功の目標を満たしたうえで、より安いプールを選ぶ。
import time
import requests
def measure(urls: list[str], proxy: str) -> dict:
ok, blocked, times = 0, 0, []
for url in urls:
start = time.monotonic()
try:
r = requests.get(url, proxies={"http": proxy, "https": proxy}, timeout=30)
times.append(time.monotonic() - start)
if r.status_code in (403, 429, 503):
blocked += 1
else:
ok += 1
except requests.RequestException:
blocked += 1
time.sleep(2) # テストも礼儀正しく
return {
"success_rate": ok / len(urls),
"blocked": blocked,
"median_seconds": sorted(times)[len(times) // 2] if times else None,
}
プロキシの種類ごとに同じ URL のリストで実行し、結果を並べて比較してください。両方のネットワークの負荷は時間帯によって変わるため、テストは別の時間帯にも繰り返してください。
キャプチャが出てきた場合
ブロックとキャプチャは異なる問題です。住宅用プロキシはキャプチャが出る頻度を減らせますが、キャプチャが出た場合は有効なトークンが依然として必要です。Scarnox で現在ライブのキャプチャ種別は PopularCaptcha です。トークンの取得と送信の方法は PopularCaptcha の Python ガイドで示しています。サイトがトークンをネットワークアドレスに結びつけている場合は、ページと解決に同じプロキシを使ってください。その選択については、プロキシありとなしのキャプチャ解決を参照してください。
よくある間違い
最も多い間違いは、データセンターのアドレスで十分に対応できる作業のために、住宅用のトラフィックを購入することです。ターゲットが寛大なレート方針の公開カタログであれば、追加のコストで得られるものはわずかです。逆の間違いは、静かな午後に一度だけテストして、プールが信頼できると結論づけることです。負荷は一日を通して変わるため、比較は複数の時間帯で実行してください。三つ目の間違いは、成功率だけを測定することです。見た目は正常でも、実際にはチャレンジや空のテンプレートであるページは成功ではありません。ステータスコードだけでなく、レスポンスの内容も確認してください。
住宅用プールの倫理
住宅用プロキシには、データセンタープロキシにはない責任が伴います。そのアドレスは実在する家庭に属しています。アドレスを、関係者の確かな同意のもとに調達しているプロバイダーを選び、契約前にどのように調達しているかを尋ねてください。所有者の同意なくインストールされたデバイスやソフトウェアを経由させるサービスは避けてください。それはプライバシーへの害であり、あなたのプロジェクトにとっても法的リスクです。
責任を持ったスクレイピング
- ターゲットとするサイトの robots.txt と利用規約を読んでください。
- 実際の成功目標を満たす最も安価なプロキシの種類を使い、どのサイトへの負荷も控えめに保ってください。
- サイトの所有者が設けた制限を回避するためにプロキシを使わないでください。
- そのアドレスがどこから来たものであっても、必要のない個人データは収集しないでください。
次のステップ
クレジットカード不要、無料トライアルクレジット付きで、アカウントを作成し、自分が所有するページで PopularCaptcha のフローを試せます。現在の料金は料金ページをご覧ください。