HTMLを解析してデータを取得するには

HtmlParseコンポーネント

HtmlParseコンポーネントでは、HTMLストリームを解析して必要なデータを取り出すことができます。HTMLの特定の要素を検索し、「取得する値」プロパティで指定した値を各フィールドに展開して、それらをレコード形式で出力できます。

HTMLの特定の要素からデータを取り出す

1.対象のHTMLを含むTextもしくはHTMLストリームのフローを作成し、「ツール」タブからHtmlParseコンポーネント(「HTMLを解析しデータを取得します」)をドラッグして配置する

9-4-01.PNG

HINT
「ベースセレクター」プロパティ
HtmlParseコンポーネントの「ベースセレクター」プロパティには、取得する値の基準となる要素を選択するためのセレクターを指定します。HtmlParseコンポーネントでは、HTMLの解析にJsoupというライブラリを使用していますが、Jsoupでは、要素の検索にCSSセレクターと同様の記法を用いているため、CSSセレクターと同じように指定できます。

 

2.その他のコンポーネントも配置して接続し、HtmlParseコンポーネントの「ベースセレクター」プロパティに、セレクターを指定する

9-4-02.PNG HINT
代表なセレクターの指定例として、以下のようなものがあります。

パターン 指定例 説明
* * すべての要素
tag div 要素tag
#id div#wrap、#logo IDが「id」の要素
.class div.left、.result クラス名が「class」の要素
[attr] a[href]、[title] 「attr」という属性を持つ要素 (値は任意)
EF div a 要素Eの下位にある要素 F
E>F ol > li 要素Eの直下にある要素 F
E+F li + li 要素Eの直後に隣接している要素F

3.「取得する値」タブをクリックし、指定した要素に対してどのデータを取得するかを指定する

9-4-03.PNG

HINT
「取得する値」プロパティ
「取得する値」タブでは、ベースセレクターで検索された要素に対してどのデータを取得するかを各項目で指定します。このプロパティで定義したそれぞれの行が、出力するフィールドになります。

項目 説明
フィールド名 出力するときのフィールド名を入力します。
セレクター ベースセレクターで検索された要素から、さらにデータの取得対象の要素を絞り込みたい場合に指定します。
取得対象

取得するデータを選択します。

  • 「テキスト」-要素配下のテキストを取得します。
  • 「タグ名」-要素のタグ名を取得します。
  • 「ID」-要素の ID 属性を取得します。
  • 「クラス名」-要素のクラス名を取得します。
  • 「インナーHTML」-要素配下のHTMLを取得します。
  • 「アウターHTML」-要素を含むHTMLを取得します。
  • 任意の属性名-要素の属性の値を取得します。
データ型 出力する値のデータ型。HTMLから取得できるデータは文字列となります。

4.フローを実行し、解析結果を取得する

9-4-05.PNG

完成したフローを実行することにより、解析結果が得られます。

HINT
URLの解決について
「取得する値」の「取得対象」の項目で、a要素のhref属性のように、URLを含む属性の属性名の前にプレフィックスとして「abs:」を指定すると、URLを絶対URLとして取得できます。このとき、実際の値が相対パスの場合は、 以下の順序でURLが補完されます。

  1. HTML内のbase要素のhref属性の値
  2. 「ベース URI」プロパティで指定された値

これらがいずれも指定されていない場合、値は空文字になります。

 

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

他のキーワードで検索する