HtmlParseコンポーネント
HtmlParseコンポーネントでは、HTMLストリームを解析して必要なデータを取り出すことができます。HTMLの特定の要素を検索し、「取得する値」プロパティで指定した値を各フィールドに展開して、それらをレコード形式で出力できます。
HTMLの特定の要素からデータを取り出す
1.対象のHTMLを含むTextもしくはHTMLストリームのフローを作成し、「ツール」タブからHtmlParseコンポーネント(「HTMLを解析しデータを取得します」)をドラッグして配置する
HINT
「ベースセレクター」プロパティ
HtmlParseコンポーネントの「ベースセレクター」プロパティには、取得する値の基準となる要素を選択するためのセレクターを指定します。HtmlParseコンポーネントでは、HTMLの解析にJsoupというライブラリを使用していますが、Jsoupでは、要素の検索にCSSセレクターと同様の記法を用いているため、CSSセレクターと同じように指定できます。
2.その他のコンポーネントも配置して接続し、HtmlParseコンポーネントの「ベースセレクター」プロパティに、セレクターを指定する
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.「取得する値」タブをクリックし、指定した要素に対してどのデータを取得するかを指定する
HINT
「取得する値」プロパティ
「取得する値」タブでは、ベースセレクターで検索された要素に対してどのデータを取得するかを各項目で指定します。このプロパティで定義したそれぞれの行が、出力するフィールドになります。
項目 | 説明 |
フィールド名 | 出力するときのフィールド名を入力します。 |
セレクター | ベースセレクターで検索された要素から、さらにデータの取得対象の要素を絞り込みたい場合に指定します。 |
取得対象 |
取得するデータを選択します。
|
データ型 | 出力する値のデータ型。HTMLから取得できるデータは文字列となります。 |
4.フローを実行し、解析結果を取得する
完成したフローを実行することにより、解析結果が得られます。
HINT
URLの解決について
「取得する値」の「取得対象」の項目で、a要素のhref属性のように、URLを含む属性の属性名の前にプレフィックスとして「abs:」を指定すると、URLを絶対URLとして取得できます。このとき、実際の値が相対パスの場合は、 以下の順序でURLが補完されます。
- HTML内のbase要素のhref属性の値
- 「ベース URI」プロパティで指定された値
これらがいずれも指定されていない場合、値は空文字になります。