0
点赞
收藏
分享

微信扫一扫

jsoup

jsoup文档:​​Selector (jsoup Java HTML Parser 1.14.3 API)declaration: package: org.jsoup.select, class: Selectorhttps://jsoup.org/apidocs/org/jsoup/select/Selector.html​​

一. 选择器

html如下:

jsoup_safari

String html =
"<ul class=\"browser\">\n" +
" <li class=\"item\">\n" +
" <a href=\"https://123.cn/\">html<span>html文档</span></a>\n" +
" </li>\n" +
" <li class=\"item\">\n" +
" <a href=\"https://456.cn/\">css<span>css文档</span></a>\n" +
" </li>\n" +
"</ul>";

1/ Jsoup.parse() 
把字符串解析问Document文档

// 把字符串解析问Document文档
Document document = Jsoup.parse(html);
System.out.println("document:"+document);

 结果:

jsoup_选择器_02

 2/ document.select()
类选择器,类似 CSS 的元素选择器,用于查找匹配查询的元素。

这种方法通常比DOM类型的getElementBy*方法更强大,因为可以组合多个过滤器,如:

​el.select("a[href]")​​​- 查找链接(带有属性​​a​​​的标签)​​href
el.select("a[href*=example.com]")​
​​ - 查找出带有 href 属性且href值包含“​​example.com​​” 字串的a标签。

常用的选择器如下:

(1)tag 标签选择器(div)

Elements item = document.select("ul");
System.out.println(item);

jsoup_css_03

 (2)#id id选择器(div#wrap)

String h = "<div id='d'>123</div>";
// 下边简写了Jsoup.parse()返回的是Document ,select是Element实例方法,而Document继承Element
Elements e1 = Jsoup.parse(h).select("#d");
System.out.println(e1);

jsoup_html_04

(3).class 类名选择器(div.left)

String h = "<div class='cls'>123</div>";
Elements e1 = Jsoup.parse(h).select(".cls");
System.out.println(e1);

jsoup_css_05

(4)[attr] 选择具有attr属性的元素(a[href]  [title] )

String h = "<div data-args='cls'>123</div><div data-args='cls'>456</div>";
Elements e1 = Jsoup.parse(h).select("[data-args]");
System.out.println(e1);

 jsoup_css_06

 (5)[^attrPrefix] 查找以 ”attrPrefix“ 开头的属性的元素 ( [^data]   div[^data-] )

String h = "<div data-args='cls'>123</div><div data-time='08:20'>456</div>";
Elements e1 = Jsoup.parse(h).select("[^data]");
System.out.println(e1);

jsoup_html_07

(6)[attr^=valPrefix] 查找 有attr 属性且 attr的值以 valPrefix 开头的元素 ( a[href^=https] )

(7)[attr$=valSuffix] 查找 有attr属性 且 attr的值结尾以 valSuffix 结尾的元素(img[src$=.png])

(8)[attr*=valContaining] 查找 有attr属性 且 attr的值包含 valContaining 的元素 (a[href*=abc])

(9)[attr=val]  具有名为“attr”的属性且值等于“val”的元素 ( img[width=120] )

(10)[attr="val"]  具有名为“attr”的属性且值等于“val”的元素 ( span[hello="nofollow"] )

组合选择器:

(1)a b  例:div a
查找div 下边的a元素

(2)a>b 例:div>p
查找父元素是div的所有p元素


举报

相关推荐

0 条评论