Tutorial
How to Increase Request Speed
6 Min
intermediate
May 3, 2024
Unlock the full potential of web scraping and data gathering with this comprehensive guide to using a proxy with Python Requests, featuring Bright Data. Whether you're a beginner looking to understand the basics or an experienced developer aiming to optimize your projects, this tutorial covers all you need to know about setting up and managing proxies effectively.
In this video you'll learn
  • Why using a proxy is essential for web scraping
  • How to set up Bright Data proxies with Python Requests
  • Best practices for managing proxy rotation and avoiding IP blocks
  • Tips and tricks to enhance your data collection strategies
Start Your Free Trial

簡単なプロキシ操作でリクエスト速度を向上させる方法を学ぶ

議題

  • 一般的な速度問題を解決する簡単な手順
  • 対象ドメイン向けに最速IPとスーパープロキシを活用する
  • 応答帯域幅の削減
  • プロキシ設定の最適化

ウェビナーを見たくない場合は、こちらをお読みください

リクエストの送受信にかかる時間は、データ収集作業の成功にとって重要です。まず、リクエスト時間を短縮する方法をご紹介します。
スーパープロキシに到達する前にリクエストを修正できるプロキシマネージャーから始めましょう

プロキシマネージャーはクローラーとスーパープロキシ間の仲介役として機能し、スーパープロキシおよびプロキシ出口ノード(ピアと呼ばれる)へのトラフィック制御と整形を支援します。
また、レスポンス取得後の処理も制御します。

プロキシマネージャーローカルにインストールするオープンソースソフトウェアです。
ダウンロードは当社ウェブサイトで提供されています:brightdata.com/products/proxy-manager,github.com/luminati-io/luminati-proxy,npmjs.com/package/@luminati-io/luminati-proxy, およびhub.docker.com/r/luminati/luminati-proxy/

まず、プロキシマネージャーのダッシュボードおよび各プロキシポートの「HARビューアー」タブで確認できるリクエストログを確認します。
リクエストをクリックすると、リクエストとレスポンスの詳細、およびそのタイミングが表示されます。
タイミングには、リクエストが送信されターゲットサイトで受信されるまでの時間、およびレスポンスが戻ってくるまでの時間が表示されます。
リクエスト送信時間が目標値を超過する場合、プロキシポートの「リクエスト速度」タブで変更可能です。

往復時間を短縮するため、自身の位置に最も近いスーパープロキシを選択できます。
プロキシマネージャーで設定するには、プロキシマネージャーを開き、対象プロキシポートの「リクエスト速度」タブで、スーパープロキシのロケーションドロップリストから希望の国を選択します。
注:出口ノードのIPジオロケーションは、スーパープロキシ自体の位置には影響されません。

ジオロケーションによるスーパープロキシの取得(レイテンシー短縮)は、以下のコマンドでも実行可能です:
servercountry-COUNTRY_CODE.zproxy.lum-superproxy.io
現在、スーパープロキシ取得に対応している国コードはAU、CN、GB、IN、NL、USです。
例:オーストラリアのスーパープロキシを取得するには、以下のコマンドを実行するだけです:servercountry-au.zproxy.lum-superproxy.io

速度向上の別の方法として、異なるスーパープロキシ経由で各リクエストを複数回並列送信し、最速のプロキシを使用する方法があります。
これは「Parallel race requests」を3に設定し、スーパープロキシの最小数を5に設定することで実現できます。
「スーパープロキシ側でDNS解決」を設定すると、ピア側での解決よりも高速化されます。
設定後、ターゲットサイトへ1リクエスト送信する簡易テストで動作確認を行ってください。

リクエスト速度向上の別の方法として、速度閾値を設定し、その閾値を満たすIPプールを保存する方法があります。
これはプロキシマネージャーの「ルール」タブで設定可能です。
リクエスト時間が閾値未満(例:500ミリ秒未満)の場合にトリガーされるルールを作成します。

次にアクションとして「高速プールにIPを保存」を選択します。これにより特定ターゲットサイト向けの最速IPプールが作成され、プールサイズを20IPに設定します。
プロキシマネージャーのルールがHTTPSプロトコルで機能するには、HTTPSアナライザーを有効にする必要があります。
詳細な手順はbrightdata.com/faq#proxy-certificateを参照してください。
OSやブラウザに応じた具体的な手順は各ページで確認できます。

応答時間の最適化には、不要なファイルをレスポンスから削除する方法があります。
ルールタブで、正規表現フィールドに削除対象のファイルタイプを選択し、特定URLへのトリガーを有効化します。
右側にJavaScript関数形式のルールが表示されるので、コードにコピーしてください。
必ずルールセクション下の「テスト」をクリックしてルールを検証してください。

データセンターネットワークと 静的住宅用IPは、IPあたり毎秒500リクエストの制限があります。
この閾値に達すると、以下のエラーが発生します:CODE 429: TUN_ERR: Too many requests perIP

解決策として、リクエストレートを低下させるか、IPを追加購入して負荷を複数のデータセンターIPに分散させてください。
データセンターIPはサーバーIPであり、スタティックレジデンシャルIPはISPが提供する超高速IPで、必要な限り使用可能です。
住宅ネットワーク(数千万の実ユーザーIPで構成)を使用したリクエスト数に制限はありません。

Bright Dataには1日あたり2,000万リクエスト以上を送信する顧客が多数存在します。
1日あたり数千万リクエストを実行する顧客にとって理想的な構成は、クローラーやボットをProxy Managerに接続するか、API経由でSuper Proxyに接続するProxy Managerに接続することです。

プロキシマネージャーは自社環境に設置され、高負荷時にはトラフィックを複数のプロキシマネージャーに分散させる必要があります。
そうしないと、単一のプロキシマネージャーマシンへの高トラフィック負荷により502エラーコードが発生する可能性があります。

複数のプロキシマネージャーを設定するには、1台のPCにプロキシマネージャーをインストールし、必要なプロキシポート、プロキシポートのターゲット設定、ネットワークルール、ポート構成を設定します。
プロキシポートは[全般]タブで設定可能で、SSLログを有効化するには[はい]を選択します。

次に、このプロキシポートに接続させたいIP(クローラーやボットのIP)をホワイトリストIPに登録します。
これにより、許可されたソースのみがプロキシマネージャーの各プロキシポートを利用できるようになります。
クローラーマシンのIPを取得し、「ホワイトリストIPアクセス」フィールドに入力してVをクリックします。

次に「手動設定」タブに移動し、JSONファイルをコピーします。
他のマシンにプロキシマネージャーをインストールするには、「手動設定」タブで編集をクリックし、JSONファイルを貼り付けて保存します。
これにより、ホワイトリストIPを含む、設定済みの全プロキシポートがコピーされます。

複数のマシンにプロキシマネージャーを導入したら、リクエストを該当マシンのIPとプロキシマネージャーポートへ誘導することで、インスタンス間のトラフィック分割が実現します。

リクエスト例:
リクエスト1 → [第1サーバーIP]:24000
リクエスト2 → [第2サーバーIP]:24000

注:前述の手順でプロキシマネージャー証明書をインストールしてください。

ウェビナーのまとめとして、リクエスト速度向上の手順は以下の通りです:

  • 1. 自身の所在地に基づき最速のスーパープロキシへトラフィックをルーティング
  • 複数のスーパープロキシに並列リクエストを送信し、最速のものを使用する
  • DNS解決をスーパープロキシ側で行う
  • レスポンスから不要なファイルを除去
  • 高速IPプールに最速IPを保存し将来利用
  • トラフィック負荷を複数のプロキシマネージャーインスタンスとマシンに分散

本ウェビナーがお役に立てば幸いです。よくある質問(FAQ)や過去のウェビナーはbrightdata.com/webinarでご覧いただけます

リソースダウンロード

The Data You Need
Is Only One Click Away.