ウェブサイトを悪意を持ってクロールするボットが急増したことで、ホスティング会社、コンテンツ配信ネットワーク(CDN)およびサーバー管理者は、ログファイルのデータ内で認識されないボットをブロックするようになりました。そのため、残念ながらDeepCrawlがクライアントのサイトに誤ってブロックされてしまう可能性があります。
このガイドでは、DeepCrawlのクロールがブロックされていることを示す指標と、ブロックを解除してサイトをクロールできるようにする方法をご紹介します。
クロールがブロックされていることを認識する方法
クロールがブロックされる最も一般的な指標には以下のようなものがあります。
クロールが不正または禁止
サーバーがDeepCrawlに対してサイトへのアクセスをブロックしている場合、レポートにHTTP401および403のヘッダーレスポンスを含む多くのURLが表示されます。
![[不正なページ]レポートで確認](https://www.deepcrawl.jp/wp-content/uploads/2020/04/1-unauthorised-and-forbidden-crawl-errors.png)
これらのエラーのURLは、[不正なページ]レポートで確認できます。
リクエストが多すぎる
DeepCrawlがサイトの処理上限を超えた量のリクエストを行なった場合、レポートに[多すぎるHTTP429ヘッダーレスポンス]を含む多くのURLが表示されます。
![[未分類のHTTPレスポンスコード]のレポートで確認](https://www.deepcrawl.jp/wp-content/uploads/2020/04/2-too-many-requests.png)
これらのエラーのURLは、[未分類のHTTPレスポンスコード]のレポートで確認できます。
クロールが遅いまたは接続タイムアウトのエラー
この場合最初はうまくクロールできているように見えますが、次第に速度が落ちてきて最終的には完全にクロールが止まったようになります。
DeepCrawlにクロールされて表示されたあらゆるURLは接続タイムアウトのエラーを示します。
なぜDeepCrawlはブロックされるのか
クロールがブロックされる理由は、以下のいずれかの原因であることがほとんどです。
- DeepCrawlはAWSを利用しているが、これはスクレイピングにしばしば利用されるためデフォルト設定でブロックされる可能性がある。
- サーバーないしCDNで自動化システムが起動しており、疑わしい動きとして検出されブロックされている。たとえば、リクエストの量が設定値を超えるとCloudflareはリクエストをブロックし始めます。
- サーバー管理者によるマニュアルでのブロックが行なわれている。これはサーバー動作への監視目的で行なわれているが、クロールにより負荷が大きくなるか、クロールエラーが膨大となったために起因したブロックが発生する。
- Googleボットのユーザーエージェントの利用により、DNSの逆引きの失敗が発生し、スクレイピングを行っていると誤認されている。
ブロックを解除しサイトのクロールを行うには?
DeepCrawlがブロックされていると思われる場合には、以下の対策を行っていただくことを推奨しています。
DeepCrawlのIPアドレスをホワイトリスト化する
サーバー管理者にこのサイトを知っていることを伝え、DeepCrawlがクロールに使う次のIPアドレスをホワイトリスト化してもらう:52.5.118.182

プロジェクト設定でユーザーエージェントを変更する
Googleボットのユーザーエージェント(DeepCrawlのデフォルトのユーザーエージェント)ではあるがGoogleのIPアドレスではないものからのリクエストをブロックするサイトもあります。この場合、クロールの詳細プロジェクト設定で別のユーザーエージェントを選択するとクロールできるようになることが多いです。

ステルスモードでクロールする
クロールの詳細プロジェクト設定で[ステルスモード]を選択してください。ステルスモードでのクロールは大量のIPアドレスとユーザーエージェントを使ってゆっくりとサイトをクロールスするため、ボットによって検出されにくくなります。

JavaScriptのレンダリングを利用する
サイトによってはJavaScriptを使ってクローラーをブロックしようとします。この手のブロックはDeepCrawlのJavaScriptレンダリング機能を利用すると回避できます。

よくある質問
- 1つ以上の解決策を実行する必要はありますか
- 1つの対策だけでDeepCrawlのブロックを解除できる可能性はありますが、別の方法を用いる必要がある場合もあります。例えばDeepCrawlのIPアドレスをホワイトリスト化するだけでなく、プロジェクトのユーザーエージェントを変える必要もあるようなケースです。
- まだクロールできない場合はどうすれば良いでしょうか?
- 複数の対策をしてもまだクロールできない場合には、クロールの失敗を解決するヒントとして、処理に失敗したクロールの対応方法をご覧ください。
- サイトがCDNを利用しているか判断する方法
- サイトがCDNを利用しているか分からない場合には、ガイドを見てCDNが利用されているか、またされている場合にはどのCDNが利用されているか判断してください。
- ログファイルの中でDeepCrawlを認識する方法は?
- DeepCrawlはユーザーエージェントの文字列の中に”DeepCrawl”を含むことで自身を認識しています。例:Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) https://deepcrawl.com/bot
ご不明な点はございますか?
上記の対策を行ってもまだクロールがブロックされている場合には、お気軽に弊社までお問合わせください。