Octoparseは初回のタスク実行時に、抽出された全てのデータを保存します。しかし、2回目、3回目のタスク実行時には、新しいデータだけが保存され、既に抽出されたデータは同じものとして認識され、重複としてマークされます。
もし上記のメカニズムがデータの重複を引き起こしていないと思われる場合は、以下の三つの側面からタスクの構造をチェックしてみることができます。
エラー1: 複数ページをスクレイピングする場合、Octoparseは以前スクレイピング済みのページに戻ったり、最後のページを繰り返しスクレイピングしたりする場合
Octoparseは多くの場合、前のページに戻って同じページを再度スクレイピングするか、最後のページをスクレイピングし続けて停止しないことがあります。
解決策:ページネーションのXPathを変更して、次のページのボタンを正しく見つけるようにする
「ページネーション」をクリックします。
新しいXPathを入力して、保存するために保存をクリックしてください。
XPathの変更方法については、以下の関連チュートリアルをご参考ください。
エラー2: 複数ページをスクレイピングする場合、ページネーション用のAJAXタイムアウト時間が短すぎ、次のページを読み込む前にタイムアウトとなり、Octoparseは現在のページデータを繰り返しスクレイピングしてしまう場合
AJAX読み込みのあるページでは、ページを読み込むのに十分な長さでないAJAXタイムアウトが設定されていると、Octoparseは現在のページを再度スクレイピングする可能性があります。
解決策:AJAXタイムアウトを延長して、ページを完全に読み込むのに十分な長さに設定する
エラー3: アイテムリストをスクレイピングする際、Octoparseは繰り返し最初のデータしかスクレイピングせず、または1つのデータフィールドがすべての行にあるデータが同じである場合
アイテムのリストをループしてデータを取得する際、Octoparseは1つのアイテムからのみスクレイピングを続ける場合があります。または、他のフィールドは各アイテムから正しく収集されますが、1つまたは2つのフィールドが固定されています。
これは、データの抽出アクションがループアイテムアクションと関連付けられていないためです。データを抽出とループアイテムを関連付けるために、2つのオプションを選択する必要があります。
1. データを抽出の基本設定でループ内のアイテムを抽出するオプションを選択します。
2. データフィールドの設定で相対XPathを選択します。
データを抽出とループアイテムが関連付けられ、Octoparseはループ内の各アイテムからデータをスクレイピングします。
解決策1:フィールドを再作成する
「ループ内のアイテムを抽出する」オプションを確認した後、ワークフローで「ループアイテム」をクリックし、その後「データを抽出」をクリックします。
最初のアイテムがハイライト表示され、ハイライト表示されたエリアからテキストを抽出する要素を選択できます。
解決策2:フィールドのXPathを直接に変更する
「データを抽出」をクリックします。
「ほかのオプション」をクリックし、「要素のXPathを設定」を選択します。
「相対XPath」をチェックし、正しいXPathを入力します。
方法1:「データを抽出」をクリックしてから「要素のXPathを設定」をクリックします。
方法2:「データを抽出」をクリックし、縦向き表示に切り替えてから各フィールドをダブルクリックしてXPathをカスタマイズします。この方法は複数のXPathを修正する必要がある場合により便利です。