すべてのコレクション
ヘルプ
高度な機能
タイムアウト時間や待機時間はどのように決めれば良い?
タイムアウト時間や待機時間はどのように決めれば良い?
一週間前以上前にアップデートされました

原因

ネットワーククローリングを行う際に、タイムアウトや待機時間を設定することは非常に重要です。これにより、以下のような潜在的な問題を回避することができます。

  1. クローラーが無限ループに陥るのを回避する:タイムアウト時間を設定しない場合、クローラーがあるウェブページにリクエストを送信し、そのページが応答できない場合、クローラーは応答が得られるまで待機し続けます。タイムアウト時間を設定しないと、このプロセスが永遠に続くことがあり、最終的にクローラーが無限ループに陥り、実行を続けることができなくなる可能性があります。

  2. サーバーに過剰な負荷をかけないようにする:待機時間を設定しない場合、クローラーはウェブサイトのページに非常に高い頻度でリクエストを送信する可能性があります。これはサーバーに大きな負荷をかけ、場合によってはサーバーがクラッシュする可能性があります。適切な待機時間を設定することで、サーバーの負荷を軽減することができ、クローラーをより安定して動作させることができます。

  3. クローラーの効率を向上させる:適切なタイムアウト時間や待機時間を設定することで、ウェブページをより効率的にクロールすることができます。たとえば、待機時間を短く設定することで、レスポンスが非常に速いウェブサイトをクロールすることができます。一方、レスポンスが遅いウェブサイトに対しては、長めの待機時間を設定することで、クローラーがウェブページの情報を正常に取得できるようにすることができます。

一般的に、ウェブサイトの応答が特に遅くない場合は、タイムアウト時間を15~30秒、待機時間を3~5秒に設定することをお勧めします。


どのような状況で設定が必要ですか

タイムアウト

ページロード(例:新しいページを開く時)

多くのリソースをロードする必要がある、または複雑な JavaScript を実行するウェブページの場合、ページが完全にロードされることを確実にするために、より長いタイムアウト時間を設定する必要があります。

サーバー応答(例:ページめくり)

目的のウェブサイトにリクエストを送信する際には、サーバーからの応答を待つために十分な時間を設定する必要があります。サーバーの負荷、ネットワーク遅延、またはページの複雑さにより、一部のウェブサイトでは応答が遅くなる場合があります。

動的コンテンツのロード(例:検索、ページめくり)

Ajax や JavaScript を使用してコンテンツを動的にロードするウェブページの場合、リクエスト後に待機時間を設定して、必要なデータが完全にロードされ、クローリングが可能になるまで待つ必要があります。

リクエストが Ajax 方式で行われる場合は、Ajax のタイムアウト設定秒数が基準となります。つまり、「詳細設定」のAjax タイムアウトが「基本設定」タイムアウトを上書きします。

待機時間

リクエスト間の遅延

連続した HTTP リクエストを送信する際、リクエスト間に待機時間を設定することで、頻繁なリクエストによってターゲットサイトにクローラーとして識別されたり、サーバーの過負荷を避けることができます。

ページ送りの待機

複数ページのデータをクロールする際、ページ送りごとに適切に待機して、ユーザーの通常のページ送り行動を模倣します。

ログインまたは対話操作後の待機

クローラーがログインやその他の対話操作(フォーム入力、ボタンクリックなど)を実行する場合、操作後に待機時間を設定することで、すべてのプロセスが正しく完了することを確実にします。

こちらの回答で解決しましたか?