OctoparseはXPathでデータを指定しますが、各ページにデータの位置は異なるかもしれません。 このチュートリアルでは、近くの2箇所のデータを関連付けることによって、データをより正しく抽出する方法を紹介します。
まず、次の例を見てみましょう。

上記の画像例では、その値は横にあります。同様に、「Item Weight」の値も横に表示されます。リストに残るデータも同じパターンを適用します。
ですから、要素の関連値を取得するには、その要素の位置を探し、次に要素の横にあるデータをさがします。この例では、ページ上で「13.4 x 0.3 x 13.4 inches」を直接検索するのではなく、「Product Dimensions」のテキストに関連付けると、より正しく取得できます。
具体的な操作は以下の手順に従ってください:
1) 「13.4 x 0.3 x 13.4 inches」をクリックして、「Product Dimensions」の値を取得します。抽出したら、データフィールドを選択し、アイコン
をクリックしてフィールドをカスタマイズします。

2) 「Xpathをカスタマイズする」をクリックします。

3) 対象データフィールドのテキストに関連する相対パスのXPathを検索する
- Firefoxでページを開き、FirePathで対象データフィールドを調べます。「Product Dimensions」のテキストは<th>タグ内にあり、その関連値は下の<td>タグ内にあります。

- ページ構造を確認したら、相対パスのXPathを書いて、「Product Dimensions」の関連値を調べることができます:
.//th[contains(text(), 'Product Dimensions')]/following-sibling::td[1]
このXPath式は、「Product Dimensions」のテキストを含む<th>タグを検索し、そのすぐ下にある一番目の<td>タグを見つけるように指示しています。そして、「Product Dimensions」の関連値を取得できます。

- 新しいXPathを「絶対Xpath」のテキストボックスに入力し、「OK」をクリックして設定を保存します。

このように、Octoparseは「Product Dimensions」がWebページに表示されている場所に応じて、「Product Dimensions」の関連値を探します。この方法をリストの同じフィールドに適用すると、要素の見つからない例が発生する可能性は減られます。
ヒント!
- Absolute XPath(絶対パス)はページ上の要素を見つける直接な方法として理解できますが、一旦階層関係が変わったら、対象要素の指定に失敗する欠点があります。
- Relative XPath (相対パス)は異なるタグ、属性、値を使ってページから要素を検索できます。これらの基準を追加すると、要素が正しく見つけられます。
- Following-sibling は、指定された要素より後にある要素を探すのによく使われます。
- XPATHの詳細はこちら!

|
関連記事:
Octoparse 7.Xの新機能を見ましょう!
AJAXを扱う方法
XPathを始めよう 1
XPathを始めよう 2