アンチボット保護への対応
現代のウェブサイトは高度なボット検知を使用しています。このガイドでは、FourAがどのようにアンチボットシステムに対応し、成功率を最大化するかを説明します。
ボット検知の仕組み
ウェブサイトは複数の保護レイヤーを使用しています。
- IP reputation: データセンターや既知のproxy IPがブロックされます
- Wire fingerprinting: 各HTTP clientは、サイトが検知可能な独自のハンドシェイクシグネチャを持っています
- Browser fingerprinting: JavaScriptがheadlessブラウザのインジケーターをチェックします
- Behavioral analysis: requestパターン、タイミング、およびナビゲーションフロー
- CAPTCHAs: 最後の防衛線としての視覚的なチャレンジ
一般的なアンチボットプロバイダーには、Cloudflare、DataDome、PerimeterX、Akamai Bot Managerなどがあります。
FourAによる解決方法
リアルなワイヤーレベルのRequest
単一のendpoint(POST /api/single/)は、実際のブラウザと一致するハンドシェイク特性を送信します。これにより、完全なブラウザを実行するオーバーヘッドなしで、最も一般的なワイヤーレベルのチェックをパスできます。
unblockerを有効にすると、リアルなブラウザheader(User-Agent、Sec-Ch-Ua、Sec-Fetch-*、Accept-Encoding)も自動的に挿入されます。
{
"method": "GET",
"url": "https://protected-site.com/data",
"unblocker": true
}
実際のブラウザレンダリング
ブラウザのendpoint(POST /api/browser/)は、完全なChromeブラウザインスタンスを実行します。検知回避パッチと組み合わせることで、ほとんどのJavaScriptベースのフィンガープリントチェックをパスします。
Proxyローテーション
proxyのendpoint(POST /api/proxy/)は、レジデンシャルおよびデータセンターのproxyを自動的にローテーションします。1つのIPがブロックされた場合、次の試行では別のIPが使用されます。
保護レベル別の戦略
低レベルの保護(ほとんどのサイト)
single endpointをunblocker付きで使用します。ワイヤーレベルの一致だけで十分です。
curl -X POST https://eu.api.foura.ai/api/single/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"method": "GET", "url": "https://news-site.com/article", "unblocker": true}'
中レベルの保護(Cloudflare、基本的なWAF)
JavaScriptチャレンジをパスするためにbrowser endpointを使用します。
curl -X POST https://eu.api.foura.ai/api/browser/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://protected-site.com/data", "timeout_ms": 15000}'
高レベルの保護(DataDome、PerimeterX)
複数回のリトライ試行を指定してproxy endpointを使用します。
curl -X POST https://eu.api.foura.ai/api/proxy/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"maxTries": 10,
"request": {
"method": "GET",
"url": "https://heavily-protected.com/prices",
"unblocker": true
}
}'
チャレンジがクリアされた後のレンダリングされたページが必要な、ティア1のWAFチェーン(Vercel Security Checkpoint、Cloudflareの「Just a moment」、Akamai Bot Manager)については、チェーンされたproxy → browserパターンのWAFチャレンジレシピを参照してください。
ベストプラクティス
シンプルに開始し、段階的に引き上げる。 最初にsingle endpointを試してください。必要な場合にのみ、browserまたはproxyに切り替えます。
rate limitを尊重する。 proxyローテーションを使用している場合でも、単一のサイトに対して1秒間に数百のrequestを送信すると、行動検知がトリガーされます。requestの間隔は少なくとも1秒から2秒空けてください。
unblockerを使用する。 singleおよびproxyのrequestでは、unblockerを有効にして、User-Agent文字列を手動で設定する代わりに、リアルなブラウザheaderを自動的に挿入します。成功率を監視する。 Dashboardのメトリクスを確認して、時間の経過に伴う成功率を追跡します。急激な低下は、通常、ターゲットサイトが保護を更新したことを意味します。
困難なターゲットに対しては
maxTriesを増やす。 proxy endpointのデフォルトは5回の試行ですが、高度に保護されたサイトに対しては最大90回まで設定できます。
FourAで回避できないもの
一部のシナリオでは、APIの外部で追加の処理が必要です。
- ログインで保護されたコンテンツ: FourAは複数のrequest間でセッションやcookieを管理しません(browser endpointはrequestごとのcookieの設定をサポートしています)
- インタラクティブなCAPTCHAs: reCAPTCHA v3およびhCaptchaは、解決サービスを必要とします
- 国 / ASNの許可リスト: 国別のライセンスを持つサイト(オンラインブックメーカー、一部の政府サービスなど)は、限られたISPからのトラフィックのみを受け入れます。Proxyローテーションは効果がありません。別のデータソースが必要になります。
- 法的制限のあるサイト: データ収集がターゲットサイトの利用規約および適用法に準拠していることを常に確認してください
次のステップ
- 適切なEndpointの選択: endpointの決定ガイド
- 一般的な問題: 403エラーやcaptchaブロックの修正
- API Endpoints: 完全なパラメータリファレンス
- MCP Recipes: WAFチャレンジチェーンを含むワークフローテンプレート