网站首页 > 技术文章 正文
Selector 类是 jsoup 库中的一个核心类,用于通过 CSS 选择器语法来查找 HTML 文档中的元素。
选择器语法
通用选择器 * :匹配任何元素。
标签选择器 tag :匹配指定标签名的元素。
ID 选择器 #id :匹配具有指定 ID 的元素。
类选择器 .class :匹配具有指定类名的元素。
属性选择器 [attr] :匹配具有指定属性的元素。
属性值选择器 [attr=val] :匹配具有指定属性值的元素。
属性值前缀选择器 [attr^=valPrefix] :匹配属性值以指定前缀开头的元素。
属性值后缀选择器 [attr$=valSuffix] :匹配属性值以指定后缀结尾的元素。
属性值包含选择器 [attr*=valContaining] :匹配属性值包含指定文本的元素。
属性值正则选择器 [attr~=regex] :匹配属性值符合正则表达式的元素。
子元素选择器 E F :匹配作为 E 元素后代的 F 元素。
子元素选择器 E > F :匹配作为 E 元素直接子元素的 F 元素。
相邻兄弟选择器 E + F :匹配紧接在 E 元素后的 F 元素。
兄弟选择器 E ~ F :匹配在 E 元素之后的所有 F 元素。
分组选择器 E, F, G :匹配 E、F 或 G 元素。
伪类选择器
:lt(n) :匹配兄弟元素中索引小于 n 的元素。
:gt(n) :匹配兄弟元素中索引大于 n 的元素。
:eq(n) :匹配兄弟元素中索引等于 n 的元素。
:has(selector) :匹配包含指定选择器匹配的元素的元素。
:is(selector list) :匹配选择器列表中任意一个选择器的元素。
:not(selector) :匹配不匹配指定选择器的元素。
:contains(text) :匹配包含指定文本的元素。
:containsOwn(text) :匹配直接包含指定文本的元素。
:containsData(data) :匹配包含指定数据的元素。
:containsWholeText(text) :匹配包含指定完整文本的元素。
:containsWholeOwnText(text) :匹配直接包含指定完整文本的元素。
:matches(regex) :匹配包含符合正则表达式的文本的元素。
:matchesWholeText(regex) :匹配包含符合正则表达式的完整文本的元素。
:matchesWholeOwnText(regex) :匹配直接包含符合正则表达式的完整文本的元素。
结构伪类选择器
:root :匹配文档的根元素。
:nth-child(an+b) :匹配父元素之前有 an+b-1 个兄弟元素的元素。
:nth-last-child(an+b) :匹配父元素之后有 an+b-1 个兄弟元素的元素。
:nth-of-type(an+b) :匹配父元素之前有 an+b-1 个同类型兄弟元素的元素。
:nth-last-of-type(an+b) :匹配父元素之后有 an+b-1 个同类型兄弟元素的元素。
:first-child :匹配父元素的第一个子元素。
:last-child :匹配父元素的最后一个子元素。
:first-of-type :匹配父元素的第一个同类型子元素。
:last-of-type :匹配父元素的最后一个同类型子元素。
:only-child :匹配没有其他兄弟元素的元素。
:only-of-type :匹配没有其他同类型兄弟元素的元素。
:empty :匹配不包含任何子元素的元素。
方法
select(String query) :根据 CSS 选择器查找匹配的元素。
selectFirst(String cssQuery, Element root) :根据 CSS 选择器查找第一个匹配的元素。
注意事项
使用正则表达式时,可能需要使用 Pattern.quote("regex") 来正确解析。
特殊字符需要使用 \ 进行转义。
猜你喜欢
- 2025-09-04 css 布局简述_简述css布局技术的特点
- 2025-09-04 9个专业级别的CSS技巧区分了解和精通的鸿沟
- 2025-09-04 BeautifulSoup如何将含有data-tag标签的元素提取出来?
- 2025-09-04 CSS 中实现动画效果的方法_css动画制作
- 2025-09-04 5个CSS新功能,简单好用还超省时间
- 2025-09-04 CSS :has()伪类:2025年最值得掌握的前端黑科技
- 2025-09-04 盘点5个让你惊呼的样式,CSS的“黑魔法”技巧!
- 2025-06-15 研发Web Components库,深入探究DOM 节点之间的关系
- 2025-06-15 CSS基础(css基础知识)
- 2025-06-15 强大而好用的选择器:focus-within
- 最近发表
- 
- 聊一下 gRPC 的 C++ 异步编程_grpc 异步流模式
- [原创首发]安全日志管理中心实战(3)——开源NIDS之suricata部署
- 超详细手把手搭建在ubuntu系统的FFmpeg环境
- Nginx运维之路(Docker多段构建新版本并增加第三方模
- 92.1K小星星,一款开源免费的远程桌面,让你告别付费远程控制!
- Go 人脸识别教程_piwigo人脸识别
- 安卓手机安装Termux——搭建移动服务器
- ubuntu 安装开发环境(c/c++ 15)_ubuntu安装c++编译器
- Rust开发环境搭建指南:从安装到镜像配置的零坑实践
- Windows系统安装VirtualBox构造本地Linux开发环境
 
- 标签列表
- 
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (77)
- vector线程安全吗 (73)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)
 
