ワークフロー内の次のアクションにOctoparseが移行するのに長時間かかる、または「次へ」ボタンをクリックした際に停滞する原因は、「次へ」ボタンで使用されているAJAX技術に関わる可能性があります。このチュートリアルでは、データ取得を効率的かつ高速に行うための対処方法について説明します。
ページ送りやボタンクリックがすべて Ajax でロードされるわけではありません。この記事では Ajax ロードのケースのみを紹介しています。リクエストの種類を識別する方法については、以下の記事をご覧ください。
AJAX読み込みがプロセスを遅らせる理由
アイテムをクリックや次のページをクリックなどのアクションを実行する前に、Octoparseはページが完全に読み込まれたことを確認する必要があります。そのため、Octoparseはページ再読み込みをワークフロー内の次のアクション実行の信号と見なしています。
AJAXで読み込むページの場合、新規コンテンツは通常リロードせずに更新されますので、Octoparseは次に進む信号を受け取れません。その結果、予想通りのデータが抽出されない、または少ないデータしか抽出されない可能性があります。
対処策は「アイテムをクリック」や「次のページをクリック」のアクションにAJAX読み込みのタイムアウト時間を設定します。タイムアウト時間になると、Octoparseはページ読み込みの有無に関わらず次のアクションを実行します。
AJAX読み込みのタイムアウトはどこで設定するの?
1. アイテムをクリックまたは次のページをクリックアクションをクリックします。
2. ワークフロー下部の「詳細設定」タブで「Ajax読み込み」にチェックを入れます。
3. ページ読み込み速度に合わせたAJAXタイムアウトを選択し「保存」で設定を保存します。
ヒント:Ajax のタイムアウト時間を最大の30秒に設定することをお勧めします。この時間内にロードが完了した場合、次のステップには30秒より前に進むことになります。通常OctoparseはAJAXを検出し自動的にタイムアウトを設定しますが、読み込みが長いページではさらに延長が必要な場合があります。