すべてのコレクション
インテグレーション
Xpathと正規表現
相対XPathを使用してループアイテム外のデータを取得する方法
相対XPathを使用してループアイテム外のデータを取得する方法
一週間前以上前にアップデートされました

このタイトルの意味がわかりづらいなら、以下の例を見てみましょう!

各地域にはたくさんの都道府県があります。もし、都道府県を抽出する時、所属の地域も抽出したい場合、相対XPathの出番です。

mceclip0.png

以下は抽出したサンプルです。

mceclip1.png

XPathはユーザーにとって難しいですが、うまく使えれば、スクレイピングは簡単になります。

例としてこのWebサイトを使います。

このページを一見すると、2つのループアイテムで解決することを思いつくかもしれません。

一番目のループでは、地域とその地域に含む都道府県を取得し、2番目のループでは各都道府県の情報を抽出します。

試したところ、上手く抽出できません。

Octoparseは同じページ上の2つのループを検出できないため、2番目のループの値は地域に応じて変化しません。そこで、相対XPathを使います。それでは、抽出する方法を紹介します。

まず、すべての都道府県を取得するループアイテムを作成し、地域と対応する都道府県の位置関係を使用して、地域の値を取得するXPathを記述できます。

ループアイテム(都道府県)のXPathに基づく:

//UL[@id='link-color']/LI/DIV[2]/UL[1]/LI

地域に一致するXPathを記述できます。

//UL[@id='link-color']/LI/DIV[2]/UL[1]/LI/../../../div[1]

相対XPathは、ループアイテムXpathに相対するXPathのマッチングの追加部分です。

/../../../div[1]

mceclip4.png

ループアイテムのXPathが地域のXPathの一部であることを確認してください。これは、相対XPathとマッチするXPathを接続するための重要なものです。

ヒント!

XPathの詳細については、以下の記事をご参照ください。

まずは、ループアイテムのXPathを//UL[@id='link-color']/LI/DIV[2]/UL[1]/LIに変更します。

そうすると、ページからフィールドを追加し、相対XPathを入力すれば、地域データが取得されます。

相対XPathを入力する方法を次に示します。

実行すると、データがきれいに取得されます。

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