前面我们已经简单的介绍了 jsoup 是如何使用选择器来对元素进行检索的。本节我们把重点放在选择器本身强大的语法上。下表是 jsoup 选择器的所有语法详细列表。
表 2. 基本用法:
ns|tag | 使用命名空间的标签定位,例如 fb:name 来查找 <fb:name> 元素 |
#id | 使用元素 id 定位,例如 #logo |
.class | 使用元素的 class 属性定位,例如 .head |
[attribute] | 使用元素的属性进行定位,例如 [href] 表示检索具有 href 属性的所有元素 |
[^attr] | 使用元素的属性名前缀进行定位,例如 [^data-] 用来查找 HTML5 的 dataset 属性 |
[attr=value] | 使用属性值进行定位,例如 [width=500] 定位所有 width 属性值为 500 的元素 |
[attr^=value], [attr$=value], [attr*=value] | 这三个语法分别代表,属性以 value 开头、结尾以及包含 |
[attr~=regex] | 使用正则表达式进行属性值的过滤,例如 img[src~=(?i)\.(png|jpe?g)] |
* | 定位所有元素 |
以上是最基本的选择器语法,这些语法也可以组合起来使用,下面是 jsoup 支持的组合用法:
表 3:组合用法:
el.class | 定位 class 为指定值的元素,例如 div.head -> <div class=head>xxxx</div> |
el[attr] | 定位所有定义了某属性的元素,例如 a[href] |
以上三个任意组合 | 例如 a[href]#logo 、a[name].outerlink |
ancestor child | 这五种都是元素之间组合关系的选择器语法,其中包括父子关系、合并关系和层次关系。 |
parent > child | |
siblingA + siblingB | |
siblingA ~ siblingX | |
el, el, el |
除了一些基本的语法以及这些语法进行组合外,jsoup 还支持使用表达式进行元素过滤选择。下面是 jsoup 支持的所有表达式一览表:
表 4. 表达式:
:gt(n) | div p:gt(2) 表示 div 中包含 2 个以上的 p |
:eq(n) | form input:eq(1) 表示只包含一个 input 的表单 |
:has(seletor) | div:has(p) 表示包含了 p 元素的 div |
:not(selector) | div:not(.logo) 表示不包含 class=logo 元素的所有 div 列表 |
:contains(text) | 包含某文本的元素,不区分大小写,例如 p:contains(oschina) |
:containsOwn(text) | 文本信息完全等于指定条件的过滤 |
:matches(regex) | 使用正则表达式进行文本过滤:div:matches((?i)login) |
:matchesOwn(regex) | 使用正则表达式找到自身的文本 |
相关推荐
下面将详细介绍 JSoup 支持的各种 CSS 选择器及其用法。 1. **基本选择器**: - `*`: 通配符选择器,匹配任何元素。 - `tag`: 按照元素名称选择,如 `div` 选择所有的 `<div>` 元素。 - `#id`: 通过元素的 ID ...
**jsoup选择器(一)常规选择器** jsoup是一个Java库,专门设计用于处理HTML文档,它提供了方便且强大的API来抓取和操作结构化数据。本篇将重点介绍jsoup中的基本选择器,帮助你高效地在HTML文档中找到所需的信息。...
在新浪高尔夫频道的新闻抓取中,我们可以先通过jsoup连接到目标URL,然后使用CSS选择器找到新闻列表的元素。例如,如果新闻标题在class为"news-item-title"的元素中,我们可以这样获取: ```java Document doc = ...
这个源码主要是对我的Jsoup笔记进行整合,初步实现saz格式文件到csv文件转换的基本功能,程序要实现的基本功能主要是: 1、saz文件遍历:获取Java工程所在目录的上层目录中,指定扩展名(.saz)的文件, 2、遍历获得...
Android开发一大神器——Jsoup.pdf
Jsoup select选择器基本的使用方法,一般套路都是打开浏览器开发者工具,找到需要爬取的网页信息所在的网页标签,标记。然后用选择器把子标签所在的“路径”用语句拼接起来。。select(".slst.mtw>ul>li>h3>a");例如要...
3. **选择元素**:通过CSS选择器选择需要的元素。比如,要获取所有段落,可以这样做: ```java Elements paragraphs = doc.select("p"); ``` 4. **提取数据**:遍历并处理选取的元素,如提取文本或属性值: ```java...
Jsoup支持CSS选择器,这使得选取HTML元素变得极其方便。例如: - `select("tag")` 选取所有指定标签的元素。 - `select(".class")` 选取所有具有指定类名的元素。 - `select("#id")` 选取具有指定ID的元素。 - `...
Jsoup的选择器语法类似于CSS选择器,包括: * 元素选择器:使用标签名,例如"a",可以选择所有的超链接元素。 * 属性选择器:使用"[attribute]",例如"a[href]",可以选择所有具有href属性的超链接元素。 * 后缀...
2. **CSS选择器**:Jsoup支持CSS选择器,这意味着你可以通过类似于jQuery的语法选取页面上的特定元素。 3. **数据提取**:通过元素选择器,可以方便地获取元素的文本、属性值等信息。 4. **数据修改**:除了读取,...
Jsoup提供了一种CSS选择器风格的API,`select()`方法可以用来查找文档中的元素。例如,我们可以使用类选择器、ID选择器、标签选择器等来定位新闻条目。一旦找到元素,可以通过`.text()`获取文本内容,通过`.attr()`...
此外,jsoup还支持选择器查询,如CSS选择器: ```java Elements links = doc.select("a[href]"); for (Element link : links) { System.out.println(link.attr("href")); } ``` **4. HTML操作** jsoup不仅用于...
jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jarjsoup-...
Jsoup 支持 CSS 选择器语法,这使得定位特定元素变得非常容易。例如,`doc.select("h1.title")` 将选取所有的 class 为 title 的 h1 元素。 8.从元素集合抽取属性、文本和 HTML 内容 `attr(String attributeKey)` ...
3. CSS选择器:Jsoup支持CSS选择器,使得定位网页元素变得简单易行。例如,`doc.select("div.container")` 将选取所有class为container的div元素。 4. 清理和规范化:Jsoup提供了一种安全的方式来清理HTML,移除...
jsoup支持CSS选择器,这使得从HTML中选择特定元素变得轻而易举。使用类似jQuery的语法,如`select("div.container p")`,可以轻松地选取页面上所有class为"container"的div元素内的段落(p)。这种特性极大地提高了...
jsoup提供了一系列强大的选择器方法,如`select()`,可以使用CSS选择器来定位元素。例如,如果糗事百科的笑话段落是`<p>`标签,我们可以这样获取它们: ```java List<Element> jokes = doc.select("p.joke"); // ...
2)使用DOM或CSS选择器来查找、取出数据 3)可操作HTML元素、属性、文本 注意:jsoup是基于MIT协议发布的,可放心使用于商业项目。 Jsoup的主要功能 1)从一个URL,文件或字符串中解析HTML 2)使用DOM或CSS选择...
在标题"jsoup-1.6.2.jar"中,我们可以看出这是一个jsoup的特定版本——1.6.2的jar包,通常用于Java项目中,方便开发者对网页数据进行操作。 **jsoup核心功能** 1. **HTML解析**:jsoup能够解析HTML文档,并将其...
jsoup的选择器语法与CSS选择器相似,支持ID、类名、标签名选择,以及更复杂的组合选择。例如: - `$("#content")`:选择id为`content`的元素。 - `$(".link")`:选择所有class为`link`的元素。 - `"div.content a"`...