ウェブスクレイピングにプロキシが必要な理由
ウェブスクレイピングは同一サイトの多数ページを短時間で読み込む作業です。全リクエストが単一IPから発信されると、サイトはそのIPのリクエスト数を基準に速度制限をかけ、収集はすぐに遅くなります。プロキシでリクエストを複数IPに分散させれば、IPごとのリクエスト数が適度に保たれ、収集が均等に継続します。
地域も重要です。多くのサイトは接続国によって言語、価格、商品リストを異なる表示します。国を選んで接続すると、その国の訪問者が見るデータを正確に収集できます。
IPKiteローテーション型住宅用プロキシは、接続アドレス1つでリクエストごとに異なる住宅用IPを割り当てます。収集プログラムはプロキシアドレスを1回入力しておくだけで、IPリストを別途管理する必要はありません。
ウェブスクレイピング向けIPKiteプロキシ
ウェブスクレイピングにはローテーション住宅プロキシが最適です。ユーザー名にセッション値を指定しなければ、リクエストごとに新しい住宅IPが割り当てられ、リストページと詳細ページを数千ページ読み込んでもリクエストが自然に分散されます。ログインやページ送りなど同一アドレスが連続する部分だけを固定セッションに切り替えれば問題ありません。
対象が一般的な公開サイトでリクエスト数が非常に多い場合は、データセンタープロキシを併用するのも良いでしょう。トラフィックが無制限のため、画像が多いページもコストを気にせず読み取れます。
同時接続数に制限はないので、収集プログラムのワーカー数を増やすだけ処理量も増えます。ワーカーを複数のサーバーに分けて実行しても、同じユーザー名とパスワードをそのまま使用できます。
- ローテーション型住宅プロキシ: ほとんどのスクレイピング作業、地域別データ
- 固定セッション: ログイン後複数ページを続けて読む区間
- データセンター プロキシ: リクエストが多い一般的なサイト、API呼び出し
ウェブスクレイピング プロキシ推奨設定
最初は同時リクエストを5~10個程度で開始し、応答コードを確認し、正常な応答が続くようであれば少しずつ増やす方法が最も安定しています。国は本当に必要な場所のみ指定すると、広いIP範囲を使用できます。
| 項目 | 推奨値 | 理由 |
|---|---|---|
| IP方式 | ローテーション(セッション値なし) | リクエスト毎に新IPでリクエストを均等分散 |
| 国 | 対象サイトの主要市場国 | 現地訪問者が見るデータを取得 |
| 都市 | 必要な時だけ | 都市別差があるサイトでのみ指定 |
| プロトコル | HTTPポート7000 | ほとんどの収集ライブラリと直接互換 |
| 同時リクエスト | 小規模開始から漸次拡大 | 対象サイトの応答を見ながら適切な速度を見つける |
| タイムアウト | 20~30秒 | 遅いページも待って取得 |
ウェブスクレイピング用プロキシ設定例
以下はPythonで米国IPをリクエストごとに切り替えながらページを読み込む例です。ユーザー名のcc値を変えるだけで他国のデータを取得できます。
import requests
proxy = "http://USERNAME-cc-us:PASSWORD@gw.ipkite.com:7000"
proxies = {"http": proxy, "https": proxy}
urls = ["https://example.com/list?page=1", "https://example.com/list?page=2"]
for url in urls:
r = requests.get(url, proxies=proxies, timeout=30)
print(url, r.status_code, len(r.text))ウェブスクレイピングプロキシ費用例
居住用プロキシは使用したトラフィック分のみ課金されるため、ページサイズとページ数で費用を事前計算できます。HTMLのみ受け取り画像とフォントを受け取らない場合、1ページは通常50~150KB程度です。
購入したGBは期間制限なく使い切るまで使用できるため、1ヶ月の計画よりも余裕を持って大きなパッケージを購入しておくと1GBあたりの価格が下がり、翌月の収集にもそのまま続けて使用できます。
| 1か月収集量 | 必要トラフィック | 購入例 | 費用 |
|---|---|---|---|
| ページ10万枚×100KB | 約10GB | 10GB | $33.00 |
| ページ30万枚×100KB | 約30GB | 30GB直接入力(1GBあたり$3.30) | $99.00 |
| ページ100万枚×100KB | 約100GB | 100GB | $330.00 |
ウェブスクレイピング プロキシ応答コード別処理
収集時には応答コードを記録しておくと作業状況が一目でわかります。ローテーション型住宅プロキシはリクエストごとに新IPが割り当てられるため、一時的な応答の多くは少し待って再送信すれば正常応答に繋がります。
- ヘッダー調整: 一般的なブラウザと同じUser-Agentと言語値を一緒に送信
- リトライ回数: アドレスごとに2~3回以内で再送信
| 応答 | 意味 | 処理方法 |
|---|---|---|
| 200 | 正常な応答 | データを保存して次のアドレスへ |
| 301 / 302 | 他のアドレスに移動 | 転送先アドレスを追跡して保存 |
| 403 | アクセス条件の確認が必要 | 国設定とリクエストヘッダーを確認し、新しいIPで再試行 |
| 429 | リクエスト高速 | リクエスト間隔を空けて暫く後再試行 |
| 5xx | 対象サーバーの一時的な状態 | 数秒後に新しいIPで再試行 |
ウェブスクレイピングプロキシ購入
ウェブスクレイピングプロキシ購入は残高チャージ後、住宅用プロキシGBを選択するだけで完了します。最初は10GBで収集コードとページサイズを確認し、1ヶ月使用量が把握できたら適量の大容量パッケージに移行するお客様が多いです。
購入順序は残高チャージ、商品と数量選択、接続情報取得です。接続情報は購入直後会員画面にすぐ表示されます。
- 開始パッケージ: 10GB、1GBあたり$3.30
- 定期収集: 100GB、1GBあたり$3.30
- 大量収集: 10,000GB、1GBあたり$1.10から
ウェブスクレイピングの適切な運用法
ウェブスクレイピングは対象サイトと長く付き合う作業です。以下の習慣を守れば収集品質が向上し、トラフィックも節約できます。
- 公開データ収集: robots.txtとサイト利用規約を確認し、公開されたページのみ読み取り
- 適切な速度: リクエストの間に間隔を置くと、対象サイトと収集作業の両方が安定
- 必要なものだけ受信: 画像・動画・フォントリクエストをオフにするとトラフィックが大幅に減ります
- 再試行: 失敗したリクエストは少し後に新しいIPで再度送信
- 個人情報尊重: 個人を特定できる情報は収集せず、集計データを中心に使用