本記事は、最新バージョンのOctoparseのチュートリアルガイドです。 古いバージョンのOctoparseを実行している場合は、アップグレードすることをおすすめします。最新バージョンはより高速かつ簡単で、機能もより強力です! まだアップデートしていない場合は、こちらでダウンロードとアップグレードしてください!
OctoparseはデータをXPathで追跡しますが、データはWebページ内の位置を変更する可能性があります。 これに対処するために、近くのテキストと関連付けることでデータをより正確に抽出する方法についてご説明します。
まず、例を見てみましょう。
例:https://www.hotpepper.jp/strJ001259626/
上の例の画像で、「店名」の値は「店名」のテキストの隣にあります。 同様に、「アクセス」の値は常に「アクセス」のテキストの隣に見つかります。 リストの残りに同じパターンが適用されるはずです。
「アクセス」がリストの3行目から4行目に場所を変更する可能性があっても、その関連する値は常にその隣にあるはずです。 したがって、任意の要素の関連する値を見つけるより一貫した方法は、まずテキストがどこにあるかを見つけ、次にその隣のデータを特定することです。 この例では、ページ上で直接「新宿駅 東口 徒歩2分 / 西武新宿駅 徒歩2分 【全席個室/3時間飲み放題付コース3300円~】」の内容を見つけようとする代わりに、「アクセス」のテキストと関連付けると、目的内容をより正確にキャプチャできます。
以下のステップに従って、そのやり方を確認してください:
ステップ1. 「アクセス」の隣のテキストをクリックして、アクセスのデータを抽出します。
ステップ2. データプレビューパネルに移動し、要素のXPathを設定をクリックします。
ステップ3. ターゲットデータフィールドのテキストに関連するXPathを見つけます。
Chromeブラウザでページを開き、ターゲットデータを右クリックして検証します。
「アクセス」の実際の言葉は<th>タグ内で、その関連値は真下の<td>タグ内で見つかります。
パターンがわかったら、「アクセス」の値を実際に見つかる言葉と関連付けて検索するXPathを書くことができます: 「//th[contains(text(),"アクセス")]/following-sibling::td[1]」 - このXPath式は、「アクセス」のテキストを含む<th>タグを検索し、直下にある最初の<td>タグを検索するようプログラムに指示しています。 これにより、「アクセス」の関連値が正確に得られます。
これで、Octoparseはウェブページ上に「アクセス」のテキストが表示されている場所に基づいて、「アクセス」の関連値を常に検索します。 このテクニックをリスト上の類似フィールドに適用することで、誤った要素のスクレイピングの可能性を減らすのに役立ちます。
ヒント: following-siblingは、別の指定された要素の隣にある要素を見つけるために非常に頻繁に使用されます。 こちらでXPathの詳細ガイドをご覧ください。