タグ要素を検索します。つまり、
siblingA + siblingB の下の要素: div.head + div など、直接トラバースします。つまり、子要素
siblingA を含まない
の下に直接的または間接的に
を持つ要素を走査します
el、el、el: 複数のセレクターを組み合わせて、セレクターの 1 つを満たす要素を検索します
(3) 擬似セレクター(条件セレクター)
:lt(n): 要素 n より前の要素を検索
:gt(n): 要素 n より後の要素を検索:eq(n): 要素 n を検索
:has(seletor): 要素 n を検索指定されたセレクターと一致します
:not(seletor): 指定されたセレクターと一致しない要素を検索します
:contains(text): 指定されたテキストを含む要素を検索します。大文字と小文字を区別します
:containsOwn(text):直接検索 指定したテキストを含む要素を参照します
:matches(regex): 指定した正規表現に一致する要素を検索します:matchesOwn(regex): この要素のテキスト内で指定した正規表現に一致する要素を検索します
注: 上記の疑似セレクター のインデックスでは、最初の要素はインデックス 0 にあり、2 番目の要素はインデックス 1 にあります...
4. 要素の属性、テキスト、HTML を取得します
要素の属性値を取得します: Node.attr(String key)
結合された子要素を含む要素のテキストを取得します: Element.text()
HTML を取得します: Element.html() またはNode.outerHtml()
5. URL を操作します
Element.attr("href") ? URL を直接取得します
Element.attr("abs:href") または Element.absUrl("href") ) ? 完全な URL を取得します。 HTML がファイルまたは文字列から解析される場合、Jsoup.setBaseUri(StringbaseUri) を呼び出してベース URL を指定する必要があります。そうしないと、取得される完全な URL は空の文字列のみになります
6. テスト例
li[ class=info] a[class=Author] - 前後のスペースは包含関係を示し、これは li の a を意味します
div[class=mod mod-main mod-lmain]:contains (Teaching Reflection) - div "Teaching Reflection" が含まれており、同時に同じ名前を持つ複数の DIV が存在する状況に適しています
/*
PreviousSibling() は特定のラベルの前のコードを取得します
nextSibling() は特定のラベルの後のコードを取得しますラベル
例:
*/
要素 items = doc.select("form[id=form1]");
for(Element) p : prevs){
String prevStr = p.previousSibling().toString().trim());
/*
最も一般的に使用されるリンク
*/
String itemTag = " div[class=mydiv]";
String linkTag = "a"
要素 items = doc.select(itemTag);
要素 links = items.select(linkTag);
for(Element l : links){
String href = l.attr("abs: href");//完全な Href
String absHref = l.attr("href");//相対パス
String text = l.text();
String title = l.attr("title") ;}
7.jsoup オンライン API
http://jsoup.org/apidocs/