【Java Utility】Jsoup网页爬虫工具-使用选择器查找元素【八】

来源:互联网 发布:2k17mc模式奥尼尔数据 编辑:程序博客网 时间:2024/06/08 13:57
原文出自https://jsoup.org/cookbook/extracting-data/selector-syntax

需求:
使用CSS或JQuery语法的选择器来查找或操作元素

解决方案:
使用方法Element.select(String selector)及Elements.select(String selector)

File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");

Elements links = doc.select("a[href]"); // 超链接
Elements pngs = doc.select("img[src$=.png]"); // png格式的图片

Element masthead = doc.select("div.masthead").first();  // div with class=masthead

Elements resultLinks = doc.select("h3.r > a"); // direct a after h3

说明:
Jsoup元素集支持类似CSS或JQuery语法的选择器来查找匹配的元素。

select方法能用于Document【文档】,Element【元素】,或Elements【元素集】。它是前后关联的,因此你可以通过选择特定元素或串联选择请求来过滤。


select方法返回元素集【一系列Element】,而元素集拥有一系列用来提取和操作选择结果的方法。

选择器概览
tagname: //tag标签查找
ns|tag:/ /名称空间+tag标签查找
#id: //id查找
.class: //class名查找
[attribute]: //属性名查找
[^attr]: //属性名前缀查找
[attr=value]: //属属性值查找性名+
[attr^=value], [attr$=value], [attr*=value]: //属性名起始于/结束于/包含值/

[attr~=regex]: //正则表达式查找

*: //所有元素

选择器组合
el#id: //元素+id
el.class: //元素+class
el[attr]: //元素+属性名
Any combination,//其它组合
ancestor child: //包含于ancestor内部的所有child元素
parent > child: //父级元素下的直接子元素
siblingA + siblingB: //a元素的前一个同级元素
siblingA ~ siblingX: //a元素之前的同级元素

el, el, el: //多个选择器组合

0 0
原创粉丝点击