HTMLを解析してデータを取得します。
入力 | フォーマット | Text,HTML |
---|---|---|
接続数 | 1 | |
説明 | 解析するHTMLを含むTextもしくはHTMLストリームを入力します。 | |
出力 | フォーマット | Record |
説明 | ベースセレクターで検索した要素に対して取得する値プロパティで指定した値を各フィールドに展開し、レコード形式で出力します。 |
名前 | データ型 | 説明 |
---|---|---|
Title | String | 読み込んだHTMLのtitle属性の値 |
名前 | プロパティ型 | マッピング | 説明 | ||||||
---|---|---|---|---|---|---|---|---|---|
ベースセレクター | string | 入力&出力 |
取得する値の基準となる要素を選択するためのセレクターを指定します。 セレクターの指定方法については下記トピック「セレクターの指定」を参照してください。 例: div - div要素 a[href] - href属性を持つa要素 a[href],img[src] - href属性を持つa要素、または、src属性を持つimg要素 a[href^=http://infoteria.com] - href属性がhttp://infoteria.comで始まるa要素 |
||||||
ベースURI | string | 入力&出力 |
abs:を使って絶対URLを取得する場合のベースURIを指定します。 この値が指定されておらずabs:を使って絶対URLを取得した場合、絶対URLが解決できない場合は空になります。 |
||||||
ループを開始 | loopProcess | - | ベースセレクターで複数の要素が検索された場合にレコードをまとめて出力するか1レコードずつループして出力するかを選択します。
|
||||||
取得する値 | category | - | ベースセレクターで検索された要素に対してどのデータを取得するかを指定します。 このプロパティで定義したそれぞれの行が出力するフィールドになります。
|
ベースセレクターで検索された要素が複数あり、ループを開始が「はい」の場合、このコンポーネントがループの起点となってレコードを1つずつ出力します。
コミット | 何もしません。 |
---|---|
ロールバック | 何もしません。 |
タイプ | パラメーター | エラー処理フロー へのストリーム | エラー コード | 説明 |
---|---|---|---|---|
要素が存在しない | なし | コンポーネントの入力ストリーム | 1 | ベースセレクターで検索した要素が見つからなかった場合 |
汎用 | なし | コンポーネントの入力ストリーム | 2 | ベースセレクターが指定されていない場合 |
3 | ベースセレクターまたはセレクターのパースに失敗した場合 |
このコンポーネントではHTMLの解析にJsoupというライブラリを使用しています。Jsoupでは要素の検索にCSSセレクターと同様の記法を用いています。以下にいくつか代表的な使用法を紹介します。もっと詳しく知りたい方はJsoupのサイトを参照ください。
パターン | 説明 | 例 |
---|---|---|
* | すべての要素 | * |
tag | 要素tag | div |
ns|E | 名前空間nsの要素E | fb|name finds <fb:name> elements |
#id | IDが「id」の要素 | div#wrap , #logo |
.class | クラス名が「class」の要素 | div.left , .result |
[attr] | 「attr」という属性をもつ要素(値は任意) | a[href] , [title] |
[^attrPrefix] | 「attrPrefix」で始まる属性をもつ要素。HTML5の独自データ属性をもつ要素を検索するのに使用してください。 | [^data-] , div[^data-] |
[attr=val] | 「attr」という属性を持つ要素でその値が「val」である要素 | img[width=500] , a[rel=nofollow] |
[attr^=valPrefix] | 「attr」という属性を持つ要素でその値が「valPrefix」で始まる要素 | a[href^=http:] |
[attr$=valSuffix] | 「attr」という属性を持つ要素でその値が「valSuffix」で終わる要素 | img[src$=.png] |
[attr*=valContaining] | 「attr」という属性を持つ要素でその値が「valContaining」を含む要素 | a[href*=/search/] |
[attr~=regex] | 「attr」という属性を持つ要素でその値が「regex」という正規表現にマッチする要素 | img[src~=(?i)\\.(png|jpe?g)] |
上記の組み合わせ | div.header[title] |
|
E F | 要素Eの下位にある要素F | div a , .logo h1 |
E > F | 要素Eの直下にある要素F | ol > li |
E + F | 要素Eの直後に隣接している要素F | li + li , div.head + div |
E ~ F | 要素Eの後ろにある同じ階層の要素F | h1 ~ p |
E, F, G | EもしくはFもしくはGにマッチする要素 | a[href], div, h3 |
また、取得する値のセレクターにはJsoupの記法の他に、ベースセレクターから親要素をたどるための「..」を使うことができます。例えば、「../../h2」と指定すれば、ベースセレクターで検索された2つ上の要素の下にあるh2要素のデータを取得することができます。この記法はセレクターの先頭でしか使用できませんのでご注意ください。
取得する値の取得対象でプレフィックスにabs:を指定した場合、URLが絶対URLとして取得できます。
このとき、実際の値が相対パスの場合は以下の順序でURLが補完されます。