データセンター プロキシはスクレーパーの秘密兵器であり、速度、規模、コストの削減を実現します。しかし、それらを効果的に使用するにはノウハウが必要です。この包括的な 4500 語以上のガイドには、データセンター プロキシを使用して大規模にスクレイピングを成功させるために必要なすべてが網羅されています。
データセンター プロキシとは何ですか?
プロキシは、スクレイパーとターゲット Web サイトの間の仲介者として機能します。
サイトはあなたの IP アドレスを認識するのではなく、プロキシ サーバーの IP アドレスを認識します。これにより、次のことが可能になります。
- IPをローテーションしてブロックを回避する
- 地理的制限を回避
- 匿名でスクレイピング
- 負荷を分散することでレート制限を克服する
データセンタープロキシ 具体的には、大規模なデータセンターでホストされているサーバー上で実行されます (それが名前の由来です)。これらのマシンは、プロキシ アクセスを販売する BrightData、Oxylabs、Apify などの企業が所有しています。
データセンター プロキシとも呼ばれます。 バックコネクトプロキシ 複数のユーザーが単一の IP アドレスを介して接続するためです。プロキシは接続のプールを維持し、リクエストごとにランダムなオープン接続を割り当て、完了すると再接続します。これにより、数千人のユーザーが IP を共有できるようになります。
たとえば、BrightData は 72 万を超える IP を保有しています。 類似ウェブデータ。 Oxylabs は 40 万以上の IP を宣伝しています。このスケールは、削り取りの負荷を分散し、ブロックを回避するために非常に重要です。
住宅プロキシとデータセンター プロキシ
代替のプロキシ タイプは次のとおりです。 住宅用プロキシ。これらは、スマートフォン、ラップトップ、スマート TV などの実際のデバイス上で実行されます。
データセンターと住宅用プロキシの比較は次のとおりです。
データセンタープロキシ | 住宅用プロキシ | |
---|---|---|
速度 | 非常に高速 (Gbps) | 遅い (10-100 Mbps) |
稼働時間 | 素晴らしい | 平均 |
費用 | 低額 (1 ドル/GB) | 高 (10 ドル以上/GB) |
禁止抵抗 | 平均 | とても良い |
CAPTCHA解決 | ハード | 初級 |
あなたが見ることができるように、 データセンター プロキシは大幅に安価で高速です。ただし、住宅用 IP は疑わしさが少なく、CAPTCHA の解決に適しています。
ほとんどのスクレイピング ジョブにはデータセンター プロキシを使用することをお勧めします。住宅用プロキシは、絶対に必要な場合、または難しいサイトをターゲットにしている場合にのみ使用してください。
データセンター プロキシの使用を開始する
データセンター プロキシの使用を開始するには、次のようなプロバイダーからアクセスを購入する必要があります。
これらのプロバイダーは、データセンター プロキシを段階的な月額料金で提供しています。
プロバイダー | GB当たりの価格 | 1万IPあたりの価格 |
---|---|---|
ブライトデータ | $1 | $300 |
オキシラブ | $2 | $500 |
アピファイ | $1.50 | $250 |
スマートプロキシ | $3.50 | $700 |
BrightData は 1 GB あたりわずか XNUMX ドルで最も安価です。
サインアップすると、次のことが得られます プロキシ URL or ポート コードで使用するには:
# Python example
import requests
proxy_url = ‘http://user:[email protected]:8000‘
response = requests.get(‘https://example.com‘, proxies={
‘http‘: proxy_url,
‘https‘: proxy_url
})
多くのプロバイダーも提供しています REST API および SDKの Node、Python、Java などでプロキシをプログラムで管理します。
プロキシ禁止テクニック
プロキシの最適化に入る前に、まずサイトがプロキシをどのように検出してブロックするかを理解しましょう。
1. 特定の IP をブラックリストに登録する
最も簡単な方法は、IP アドレスによるブラックリスト登録です。サイトは既知の不良 IP のリストを管理し、一致するリクエストをブロックします。
共有データセンター IP は、以前のユーザーが IP を悪用したためにブラックリストに登録されることがよくあります。自分が所有する専用の静的 IP のみがこの問題を回避します。
Apify によると、 92% のサイトがブラックリストによってブロックされている。共有 IP を迅速にローテーションすることが、問題を回避する鍵となります。
2. IP 範囲全体をブロックする
サイトもブラックリストに登録 IP範囲 各 IP ブロックに割り当てられた一意の ASN 識別子を使用します。一般的なデータセンターの範囲は、簡単に特定して禁止できます。
たとえば、すべての Azure データセンター IP は 52.160.0.0 から 52.191.255.255 で始まります。したがって、サイトはこれらの最大 1 万個の IP からのリクエストをブロックする可能性があります。
範囲が異なる複数のプロバイダーのプロキシを使用すると、大規模な ASN ブロックを回避できます。
3. トラフィックパターンの分析
Cloudflare などの一部の保護サービスは、統計モデルを構築して識別します 疑わしいトラフィック パターン.
たとえば、すべてのトラフィックがちょうど 5 分間隔で到着する場合、または同様のユーザー エージェント パターンに従っている場合、ボットのようなものとしてフラグが付けられる可能性があります。
後で説明しますが、人間のパターンを模倣することが重要です。
4. 国全体の禁止
サイトは通常、攻撃を軽減するか、単にパフォーマンスを向上させるために、特定の地域からのトラフィックをブラックリストに登録します。
プロキシの場所をローテーションすると、場所に基づくブロックを回避できます。ほとんどのデータセンター プロバイダーでは、プロキシ URL に国を設定できます。
5. HTTPヘッダーの分析
もう 1 つの一般的な戦術は、次のような疑わしい HTTP ヘッダーを探すことです。
- ブラウザユーザーエージェントなし
- Accept-Language などのヘッダーが欠落している
- 奇妙なユーザーエージェントのようなもの
Python/3.6 aiohttp/3.6.2
ヘッダーを修正してブラウザーを模倣することが重要です。のようなツール ブライトデータ および アピファイ これを自動的に行います。
6. 周波数とレート制限
最も積極的な保護の 1 つは、 レート制限 – 単一の IP からのリクエストは 1 分/時間あたり X 件のみ許可されます。
データセンター IP の大規模なプール間で頻繁にローテーションを行うと、レート制限を回避できます。
成功のためのプロキシの最適化
基本ブロックを避けるだけでは十分ではありません。大規模にスクレイピングする場合、成功、パフォーマンス、寿命を実現するには、プロキシの使用を慎重に最適化する必要があります。
プロキシセッションを使用する
BrightData や Oxylabs のようなツールは、次の重要な概念を提供します。 プロキシセッション。これにより、ローテーションする前に、複数のリクエストに対して IP をセッションに「ロック」できます。
これにより、IP 間のローテーションが頻繁に行われることがなくなります。 IP 自体ではなくセッションを再利用します。
セッションアーキテクチャの例:
Session 1 > IP 1
IP 2
IP 3
Session 2 > IP 4
IP 5
IP 6
リクエストではなく、分または時間単位でセッションをローテーションします。
Cookie とヘッダーを永続化する
セッション/IP 間で Cookie を交換しないでください。リクエスト間で同じセッション固有の Cookie を一貫して使用します。
ヘッダーについても同様です。各セッションは、カスタム ヘッダー値を使用して固有のブラウザーを模倣する必要があります。
ランダム性を追加する
少数の IP またはセッションに過負荷をかけないでください。ランダムにローテーションして大規模なプロキシ プール全体に負荷を分散し、最適なパフォーマンスを実現します。
同時リクエストを制限する
並列リクエストが多すぎるとプロキシが過負荷になり、プロキシが禁止される可能性があります。安全なベンチマークとして、同時実行数を IP あたり最大 10 リクエストに制限します。
健康状態を積極的に監視する
5xx エラー、タイムアウト、ブロックなどに注意してください。異常なセッションを無効にして、再利用する前にリセットする時間を確保します。
再試行ロジックを有効にする
基盤となるプロキシ セッションを無効にする前に、失敗した個々のリクエストを 2 ~ 3 回再試行します。これにより、誤検知が最小限に抑えられます。
タイムアウトはゆっくり取る
60 ~ 90 秒の長いタイムアウトから始めます。急速な障害により、新しいプロキシ間の負荷が増加します。
ループを避ける
タイトなループ内で失敗したリクエストを急速に再試行しないでください。これにより、負荷が増大します。バックオフ遅延またはキューを使用します。
遅延を組み込む
人間のパターンを模倣するために、リクエスト間にランダム化された小さな遅延を追加します。 1 ~ 3 秒/リクエストから始めるのが適切です。
高度なアンチブロッキング技術
サイトが使用する可能性のあるいくつかのより高度な戦術と、それらに対抗する方法について説明しましょう。
ブラウザのフィンガープリンティング
ブラウザのフィンガープリントには、実際のブラウザを識別するためのキャンバス レンダリング、フォント検出、WebGL フィンガープリントなどの技術が含まれます。
ソリューション:
- 完全なブラウザ エミュレーションを提供する BrightData や Browserless などのツールを使用する
- Puppeteer または Playwright を使用してヘッドレス ブラウザのスクレイピングを有効にする
- プロキシ サービスは実際のブラウザのフィンガープリントを提供できます
CAPTCHA の課題
サイトは、特にボット トラフィックの兆候を確認した後、難しい CAPTCHA を強制する場合があります。
ソリューション:
- CAPTCHA をより簡単に解決できる住宅用プロキシに切り替える
- 次のような CAPTCHA 解決サービスを使用します。 アンチキャプチャ
- 人間の行動を模倣することで、そもそもフラグを立てないようにする
高度な機械学習
大規模なサイトでは、トラフィック パターンやユーザーの行動に基づいて複雑な ML モデルをトレーニングする場合があります。バイパスするのは非常に困難です。
解決法:
- 住宅用ローテーションプロキシ 実IPを頻繁にローテーションすることで高い匿名性を提供します。
法的ブロック
場合によっては、警告後にスクレイピングが続く場合、サイトが脅迫したり、法的措置を講じたりする可能性があります。
ソリューション:
- リスクを理解するには弁護士に相談してください
- 許可されている使用法については、Web サイトの利用規約を確認してください
- 代わりに上流のアグリゲーターからデータをスクレイピングするなどの代替案を検討してください。
人気のあるライブラリでのプロキシの使用
すべての主要なスクレイピング ライブラリと自動化ライブラリにより、プロキシの使用が簡単になります。
Python
import requests
proxies = {
‘http‘: ‘http://user:[email protected]:5678‘,
‘https‘: ‘http://user:[email protected]:5678‘
}
response = requests.get(‘https://example.com‘, proxies=proxies)
Node.js
const axios = require(‘axios‘);
const proxyUrl = ‘http://user:[email protected]:5678‘;
const response = await axios.get(‘https://example.com‘, {
proxy: {
protocol: ‘http‘,
host: ‘1.2.3.4‘,
port: 5678,
auth: {
username: ‘user‘,
password: ‘pass‘
}
}
});
Java
import java.net.Proxy;
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("1.2.3.4", 5678));
HttpClient httpClient = HttpClientBuilder.create()
.setProxy(proxy)
.build();
HttpResponse response = httpClient.execute(request);
プロキシを統合する方法の詳細については、各ライブラリのドキュメントを参照してください。
プログラムによるプロキシの管理
ほとんどのプロキシプロバイダーも提供しています APIとSDK プロキシをプログラムで管理するには:
// Rotate proxy IP using BrightData SDK
const { BrightDataClient } = require(‘brightdata‘);
const client = new BrightDataClient({
authToken: ‘AUTH_TOKEN‘
});
const proxyUrl = await client.getProxyUrl(); // Returns fresh proxy URL
これにより、健全性、CAPTCHA の解決、場所の選択などに基づいて IP を動的にローテーションすることが可能になります。
次のドキュメントを参照してください。
プログラムによるアクセスの詳細については、
まとめ
この包括的なガイドが示したように、 データセンター プロキシは、大規模な Web スクレイピングに高速かつコスト効率の高いソリューションを提供します 適切に使用した場合。
重要なのは、プロキシの使用を慎重に管理して、人間の自然な動作を模倣しながらパフォーマンスを最大化することです。プロキシ セッション、カスタム ヘッダー、制御されたローテーション、トラフィック分析などの技術が重要です。
高度なアンチボット サービスは依然として課題を引き起こす可能性があります。このような場合、居住代理人が必要になる場合があります。ブロックや警告後にスクレイピングを続ける場合は、必ず弁護士に相談してください。
BrightData、Oxylabs、Apify、Smartproxy などの強力なツールを使用すると、データセンター プロキシをスクレイピング プロジェクトに簡単に組み込むことができます。適切に設定すれば、データを大規模かつ正常にスクレイピングできます。
データセンター プロキシについて何か追加することはありますか?お気軽にお問い合わせください。最新のプロキシ スクレイピング技術についていつでも喜んで議論します。