近くの2箇所のデータを関連付ける方法

Sunday, April 08, 2018 9:22 AM
OctoparseはXPathでデータを指定しますが、各ページにデータの位置は異なるかもしれません。 このチュートリアルでは、近くの2箇所のデータを関連付けることによって、データをより正しく抽出する方法を紹介します。

まず、次の例を見てみましょう。

web scraping with octoparse - associate with nearby text

上記の画像例では、その値は横にあります。同様に、「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」の値を取得します。抽出したら、データフィールドを選択し、アイコンweb scraping with octoparse - associate with nearby textをクリックしてフィールドをカスタマイズします。

web scraping with octoparse - associate with nearby text

2) 「Customize Xpath」をクリックします。

web scraping with octoparse - associate with nearby text

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

web scraping with octoparse - associate with nearby text

  • ページ構造を確認したら、相対パスのXPathを書いて、「Product Dimensions」の関連値を調べることができます: 

     .//th[contains(text(), 'Product Dimensions')]/following-sibling::td[1] 

このXPath式は、「Product Dimensions」のテキストを含む<th>タグを検索し、そのすぐ下にある一番目の<td>タグを見つけるように指示しています。そして、「Product Dimensions」の関連値を取得できます。

web scraping with octoparse - associate with nearby text

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

web scraping with octoparse - associate with nearby text

このように、Octoparseは「Product Dimensions」がWebページに表示されている場所に応じて、「Product Dimensions」の関連値を探します。この方法をリストの同じフィールドに適用すると、要素の見つからない例が発生する可能性は減られます。

ヒント!

  • Absolute XPath(絶対パス)はページ上の要素を見つける直接な方法として理解できますが、一旦階層関係が変わったら、対象要素の指定に失敗する欠点があります。
  • Relative XPath (相対パス)は異なるタグ、属性、値を使ってページから要素を検索できます。これらの基準を追加すると、要素が正しく見つけられます。
  • Following-sibling は、指定された要素より後にある要素を探すのによく使われます。
  • XPATHの詳細はこちら!web scraping with octoparse - associate with nearby text

関連記事:

Octoparse 7.Xの新機能を見ましょう!

AJAXを扱う方法

 

XPathを始めよう 1

XPathを始めよう 2

 

btn_sidebar_use.png