倫理的ウェブクローラーのベストプラクティス - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

倫理的ウェブクローラーのベストプラクティス

このセクションでは、環境、社会、ガバナンス (ESG) データを収集するウェブクロールアプリケーションを構築するためのベストプラクティスと重要な倫理的考慮事項について説明します。これらのベストプラクティスに従うことで、プロジェクトと組織を保護し、より責任ある持続可能なウェブエコシステムに貢献できます。このアプローチは、貴重なデータにアクセスし、すべての利害関係者を尊重する方法で研究、ビジネス、イノベーションに使用するのに役立ちます。

Robots.txt コンプライアンス

robots.txt ファイルは、ウェブサイトで使用され、ウェブサイトのどの部分にアクセスまたはクロールすべきかについて、ウェブクローラーやボットと通信します。ウェブクローラは、ウェブサイトで robots.txt ファイルを検出すると、指示を解析し、それに応じてクローリング動作を調整します。これにより、クローラがウェブサイト所有者の指示に違反しないようにし、ウェブサイトとクローラの間の協力関係を維持します。したがって、robots.txt ファイルは、アクセスコントロール、機密コンテンツの保護、ロード管理、および法的コンプライアンスに役立ちます。

ACM のベストプラクティスに従うことをおすすめします。

  • robots.txt ファイルのルールを常に確認し、尊重してください。

  • URL をクロールする前に、デスクトップユーザーエージェントとモバイルユーザーエージェントの両方のルールを確認してください。

  • ウェブサイトでモバイルユーザーエージェントのみが許可されている場合は、リクエストにモバイルエージェントヘッダーなどの別のエージェントヘッダーを使用します。

robots.txt ファイルがないからといって、ウェブサイトをクロールできない、またはクロールすべきではないとは限りません。クローリングは、ウェブサイトのリソースと所有者の暗黙的な権利を尊重して、常に責任を持って行う必要があります。robots.txt が存在しない場合に推奨されるベストプラクティスは次のとおりです。

  • クローリングは許可されていると仮定しますが、注意して続行してください。

  • 礼儀正しいクローリングプラクティスを実装します。

  • 大規模なクローリングを実行する予定がある場合は、ウェブサイト所有者に連絡して許可を求めることを検討してください。

クロールレートの制限

サーバーが過負荷にならないように、適切なクロールレートを使用します。robots.txt ファイルで指定されているか、ランダムな遅延を使用して、リクエスト間の遅延を実装します。小規模または中規模のウェブサイトでは、10~15 秒ごとに 1 つのリクエストが適切である場合があります。大規模なウェブサイトや明示的なクロール許可を持つウェブサイトでは、1 秒あたり 1~2 リクエストが適切である場合があります。

ユーザーエージェントの透明性

user-agent ヘッダーでクローラを特定します。この HTTP ヘッダー情報は、コンテンツをリクエストしているデバイスを識別することを目的としています。通常、ボットという単語はエージェントの名前に含まれます。クローラやその他のボットは、 ヘッダーの重要なフィールドを使用して連絡先情報を含めることがあります。

効率的なクローリング

ウェブサイト所有者によって開発されたサイトマップを使用して、重要なページに焦点を当てます。

アダプティブアプローチ

デスクトップバージョンが失敗した場合にモバイルユーザーエージェントに切り替えるようにクローラをプログラムします。これにより、クローラへのアクセスが可能になり、ウェブサイトのサーバーへの負担を軽減できます。

エラー処理

クローラがさまざまな HTTP ステータスコードを適切に処理していることを確認します。たとえば、429 ステータスコード (「リクエストが多すぎます」) が発生した場合、クローラは一時停止する必要があります。クローラが 403 ステータスコード (「禁止」) を継続的に受信する場合は、クローリングの停止を検討してください。

バッチでのクローリング

次のことを行うことをお勧めします。

  • すべての URLs一度にクロールする代わりに、タスクを小さなバッチに分割します。これにより、負荷を分散し、タイムアウトやリソース制約などの問題が発生するリスクを軽減できます。

  • クローリングタスク全体が長時間実行されることが予想される場合は、より小さく管理しやすい複数のタスクに分割することを検討してください。これにより、プロセスのスケーラビリティと耐障害性が向上します。

  • クロールする URLs の数が比較的少ない場合は、 などのサーバーレスソリューションの使用を検討してください AWS Lambda。Lambda 関数は、リソース管理を自動的にスケーリングして処理するため、存続期間の短いイベント駆動型タスクに適しています。

セキュリティ

ウェブクロールコンピューティングタスクでは、アウトバウンドトラフィックのみを許可するように環境を設定することをお勧めします。これにより、攻撃対象領域を最小限に抑え、不正なインバウンドアクセスのリスクを減らすことで、セキュリティを強化できます。アウトバウンド接続のみを許可すると、クローリングプロセスがターゲットウェブサイトと通信して必要なデータを取得でき、システムが侵害される可能性のあるインバウンドトラフィックが制限されます。

その他の考慮事項

以下の追加の考慮事項とベストプラクティスを確認してください。

  • ウェブサイトの利用規約またはプライバシーポリシーのクローリングガイドラインを確認してください。

  • HTML で、クローリングディレクティブを提供する可能性のあるmetaタグを探します。

  • データ収集と使用に関する管轄区域の法的制限に注意してください。

  • ウェブサイト所有者から要求された場合は、クローリングを停止する準備をしてください。