使用选择器语法来查找和操作元素

使用类似于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]"); //带有href属性的a元素
Elements pngs = doc.select("img[src$=.png]"); //扩展名为.png的图片
Element masthead = doc.select("div.masthead").first(); //class等于masthead的div标签
Elements resultLinks = doc.select("h3.r > a"); //在h3元素之后的a元素jsoup elements对象支持类似于CSS (或jquery)的选择器语法,来实现非常强大和灵活的查找功能。
这个select 方法在Document, Element,或Elements对象中都可以使用。
且是上下文相关的,因此可实现指定元素的过滤,或者链式选择访问。Select方法将返回一个Elements集合,并提供一组方法来抽取和处理结果。

selector选择器概述

tagname: 通过标签查找元素,比如:a
ns|tag: 通过标签在命名空间查找元素,比如:可以用 fb|name 语法来查找 <fb:name> 元素
#id: 通过ID查找元素,比如:#logo
.class: 通过class名称查找元素,比如:.masthead
[attribute]: 利用属性查找元素,比如:[href]
[^attr]: 利用属性名前缀来查找元素,比如:可以用[^data-] 来查找带有HTML5 Dataset属性的元素
[attr=value]: 利用属性值来查找元素,比如:[width=500]
[attr^=value], [attr$=value], [attr*=value]: 利用匹配属性值开头、结尾或包含属性值来查找元素,比如:[href*=/path/]
[attr~=regex]: 利用属性值匹配正则表达式来查找元素,比如: img[src~=(?i)\.(png|jpe?g)]
*: 这个符号将匹配所有元素
Selector选择器组合使用
el#id: 元素+ID,比如: div#logo
el.class: 元素+class,比如: div.masthead
el[attr]: 元素+class,比如: a[href]
任意组合,比如:a[href].highlight
ancestor child: 查找某个元素下子元素,比如:可以用.body p 查找在"body"元素下的所有 p元素
parent > child: 查找某个父元素下的直接子元素,比如:可以用div.content > p 查找 p 元素,也可以用body > * 查找body标签下所有直接子元素
siblingA + siblingB: 查找在A元素之前第一个同级元素B,比如:div.head + div
siblingA ~ siblingX: 查找A元素之前的同级X元素,比如:h1 ~ p
el, el, el:多个选择器组合,查找匹配任一选择器的唯一元素,例如:div.masthead, div.logo
伪选择器selectors
:lt(n): 查找哪些元素的同级索引值(它的位置在DOM树中是相对于它的父节点)小于n,比如:td:lt(3) 表示小于三列的元素
:gt(n):查找哪些元素的同级索引值大于n,比如: div p:gt(2)表示哪些div中有包含2个以上的p元素
:eq(n): 查找哪些元素的同级索引值与n相等,比如:form input:eq(1)表示包含一个input标签的Form元素
:has(seletor): 查找匹配选择器包含元素的元素,比如:div:has(p)表示哪些div包含了p元素
:not(selector): 查找与选择器不匹配的元素,比如: div:not(.logo) 表示不包含 class=logo 元素的所有 div 列表
:contains(text): 查找包含给定文本的元素,搜索不区分大不写,比如: p:contains(jsoup)
:containsOwn(text): 查找直接包含给定文本的元素
:matches(regex): 查找哪些元素的文本匹配指定的正则表达式,比如:div:matches((?i)login)
:matchesOwn(regex): 查找自身包含文本匹配指定正则表达式的元素
注意:上述伪选择器索引是从0开始的,也就是说第一个元素索引值为0,第二个元素index为1等

实例应用

String html = "<p>An <a href='http://example.com/'><b>example</b></a> link.</p>";
Document doc = Jsoup.parse(html);//解析HTML字符串返回一个Document实现
Element link = doc.select("a").first();//查找第一个a元素String text = doc.body().text(); // "An example link"//取得字符串中的文本
String linkHref = link.attr("href"); // "http://example.com/"//取得链接地址
String linkText = link.text(); // "example""//取得链接地址中的文本String linkOuterH = link.outerHtml(); // "<a href="http://example.com"><b>example</b></a>"
String linkInnerH = link.html(); // "<b>example</b>"//取得链接内的html内容

转载于:https://www.cnblogs.com/ssgao/p/8829209.html

jsonp 使用选择器相关推荐

  1. jQuery中的ajax、jquery中ajax全局事件、load实现页面无刷新局部加载、ajax跨域请求jsonp、利用formData对象向服务端异步发送二进制数据,表单序列化(异步获取表单内容)

    jQuery中使用ajax: 在jQuery中使用ajax首先需要引入jQuery包,其引入方式可以采用网络资源,也可以下载包到项目文件中,这里推荐下载包到文件中:市面上有多个版本的jQuery库,这 ...

  2. 自己以前写的一个简单的jq,包含了 ajax,get,post,submit 等方法还有jsonp的思想

    /*Name : kessToolType : javascriptFun : ToolDate : 2016年8月23日 16:13:15by : kessnote : 重写 */ (functio ...

  3. 【练习】jsonP的实际应用,移动端web,京东手机移动端(开头)

    1.百度地图开放平台jsonP的实际应用 http://lbsyun.baidu.com/index.php?title=webapi/direction-api-v2 找到一个端口,把ak改成自己的 ...

  4. web前端开发课程安排,写出jquery常用选择器

    面试知识点 主要内容包括html,css,前端基础,前端核心,前端进阶,移动端开发,计算机基础,算法与数据结构,设计模式,项目等等. html 1.浏览器页面有哪三层构成,分别是什么,作用是什么? 2 ...

  5. 70天的JQUERY学习: 选择器+事件+效果。总结篇

    运行结果  这是我等下要发的代码.首先去了解Jquery的Apl:APL代码.  <!DOCTYPE html> <html class="no-js loading-pr ...

  6. CSS 选择器:BeautifulSoup4解析器

    和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据. lxml 只会局部遍历,而Beautiful Soup 是基 ...

  7. xpath选择器简介及如何使用

    xpath选择器简介及如何使用 一.总结 一句话总结:XPath 的全称是 XML Path Language,即 XML 路径语言,它是一种在结构化文档(比如 XML 和 HTML 文档)中定位信息 ...

  8. css选择器及float(浮动)

    --------------------------选择器( css有就近原则)------------------------------- 选择器名称                 在css表的 ...

  9. html5类选择器选择权重,Python Html5和CSS3的新增功能:CSS权重与CSS3新增选择器

    一.CSS权重概念 CSS权重概念:指的是样式的优先级,有两条或多条样式作用于一个元素,权重高的那条样式对元素起作用,权重相同的,后写的样式会覆盖前面写的样式. 二.权重的等级 2.1.权重的等级划分 ...

  10. 浅谈对html css的理解,HTML+CSS入门 CSS选择器 、属性和值浅谈

    body { font-size: 0.8em; color: navy; } 上面的意思是为body选择器设置font-size字体大小和color字体颜色. 所以基本的,当它作用与HTML页面时, ...

最新文章

  1. 详解原生AJAX请求demo(兼容IE5/6)
  2. 专访丨周志华:深度学习理论探讨比应用滞后太多
  3. 使用wlan接收器经常重新登录怎么办
  4. 数据库中的null和c#中的null
  5. LeetCode 219. 存在重复元素 II(哈希)
  6. python名称空间与运用域_Python名称空间和作用域讲座,命名,Namespaces,Scopes
  7. linux 16.04 WIFI,手动配置 WIFI无线网络 (Ubuntu 16.04)
  8. 集大成者 —— 荀子
  9. layUI数据表格可编辑扩展下拉框
  10. mysql left join 几个意思
  11. 将word文档转换为图片格式的PDF
  12. 微信支付获取用户真实ip
  13. 用excel制作双层饼图_Excel 怎么用环形图制作双层饼图,excle饼状图图的制作
  14. pocket pc 2003 联网
  15. 申请微信公众号,当前绑定的银行卡暂不支持实名验证...
  16. 【XBEE手册】ZigBee网络
  17. 怎么定位门面位置_如何选择店面位置
  18. 【智能推荐】阿里云智能推荐AIRec文档说明与SDK测试
  19. SpringBoot框架的优点
  20. ROS系列:一、ROS是什么

热门文章

  1. iis部署错误:HTTP 错误 500.21 - Internal Server Error
  2. 在本地电脑搭建一个网站 转自本文地址:http://www.fengzimo.com/1503.html 来源 疯子墨...
  3. struts2 文件上传下载注解示例
  4. UNIX网络编程卷1 时间获取程序server UDP 协议无关
  5. Solaris11修改主机名
  6. 自己动手开发编译器(二)正则语言和正则表达式
  7. UJAM Virtual Guitarist SILK for mac(尼龙弦原声吉他)
  8. OmniGraffle 7 Pro全新推出!V7.18.3(204.9.0)正式版 支持M1
  9. Centos 7 配置 apache https访问以及Chrome 忽略证书错误继续
  10. 【Flutter】基础组件【09】Button