「クラウド抽出」でタスクを実行する場合、タスクは複数のサブタスクに分割されます。複数のサブタスクは同時に複数のサーバーでクラウド上で実行されます。サブタスクからスクレイプされたデータは同時に転送されます。そのため、データが順序通りにならないのです。
クラウド抽出の動作原理を知ることで、この問題を解決することができます。データを順序通りに処理するための2つの方法があります。どちらの方法も、すべてのタスクを1つのサブタスクで実行するようにできます。
1. タスクの分割を無効化する - すべてのタスクを1つのIPで実行する
Octoparseのインターフェースの右上にあるタスク設定ボタンをクリックします。
「タスク分割を無効にする」にチェックを入れます。
保存をクリックします。
このオプションを選択すると、タスクはサブタスクに分割されません。そのため、データはローカル実行と同じ順序で取得されます。もし順序が異なる場合は、データを抽出アクションに実行前の待機時間を設定してみることができます。
2. クラウドサーバーの割り当てを1に設定する - すべてのタスクを1つのIPで実行する
ダッシュボードに移動します。
詳細設定を開くために「もっと」ボタンをクリックします。
クラウド抽出を選択します。
クラウドサーバーの割り当てを選択します。
ボックスに1を入力します。
保存をクリックします。
このオプションでは、タスクは引き続きサブタスクに分割されることがありますが、Octoparseは1つのサブタスクのみを実行します。そのため、返される結果は順序通りになります。
注意: 両方の解決策は、クラウドの速度が実行中のサブタスクの数に依存するため、スクレイピングの速度が遅くなる可能性があります。