`
jaychang
  • 浏览: 736751 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

jsoup 的过人之处——选择器

 
阅读更多

 

前面我们已经简单的介绍了 jsoup 是如何使用选择器来对元素进行检索的。本节我们把重点放在选择器本身强大的语法上。下表是 jsoup 选择器的所有语法详细列表。

表 2. 基本用法:
tagname 使用标签名来定位,例如 a
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#id 定位 id 值某个元素,例如 a#logo -> <a id=logo href= … >
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. 表达式:
:lt(n) 例如 td:lt(3) 表示 小于三列
: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选择器用法大全

    下面将详细介绍 JSoup 支持的各种 CSS 选择器及其用法。 1. **基本选择器**: - `*`: 通配符选择器,匹配任何元素。 - `tag`: 按照元素名称选择,如 `div` 选择所有的 `&lt;div&gt;` 元素。 - `#id`: 通过元素的 ID ...

    jsoup 选择器(一)常规选择器

    **jsoup选择器(一)常规选择器** jsoup是一个Java库,专门设计用于处理HTML文档,它提供了方便且强大的API来抓取和操作结构化数据。本篇将重点介绍jsoup中的基本选择器,帮助你高效地在HTML文档中找到所需的信息。...

    jsoup 网页信息 抓取 选择器

    在新浪高尔夫频道的新闻抓取中,我们可以先通过jsoup连接到目标URL,然后使用CSS选择器找到新闻列表的元素。例如,如果新闻标题在class为"news-item-title"的元素中,我们可以这样获取: ```java Document doc = ...

    Jsoup学习——Saz2Csv解析器

    这个源码主要是对我的Jsoup笔记进行整合,初步实现saz格式文件到csv文件转换的基本功能,程序要实现的基本功能主要是: 1、saz文件遍历:获取Java工程所在目录的上层目录中,指定扩展名(.saz)的文件, 2、遍历获得...

    Android开发一大神器——Jsoup.pdf

    Android开发一大神器——Jsoup.pdf

    Jsoup select选择器的简单使用案例

    Jsoup select选择器基本的使用方法,一般套路都是打开浏览器开发者工具,找到需要爬取的网页信息所在的网页标签,标记。然后用选择器把子标签所在的“路径”用语句拼接起来。。select(".slst.mtw&gt;ul&gt;li&gt;h3&gt;a");例如要...

    java课程设计之jsoup实战之爬取网站的信息

    3. **选择元素**:通过CSS选择器选择需要的元素。比如,要获取所有段落,可以这样做: ```java Elements paragraphs = doc.select("p"); ``` 4. **提取数据**:遍历并处理选取的元素,如提取文本或属性值: ```java...

    JsoupAPI(jsoup帮助文档)

    Jsoup支持CSS选择器,这使得选取HTML元素变得极其方便。例如: - `select("tag")` 选取所有指定标签的元素。 - `select(".class")` 选取所有具有指定类名的元素。 - `select("#id")` 选取具有指定ID的元素。 - `...

    Jsoup语法详解

    Jsoup的选择器语法类似于CSS选择器,包括: * 元素选择器:使用标签名,例如"a",可以选择所有的超链接元素。 * 属性选择器:使用"[attribute]",例如"a[href]",可以选择所有具有href属性的超链接元素。 * 后缀...

    Jsoup 1.5.2 和jsoup 1.6

    2. **CSS选择器**:Jsoup支持CSS选择器,这意味着你可以通过类似于jQuery的语法选取页面上的特定元素。 3. **数据提取**:通过元素选择器,可以方便地获取元素的文本、属性值等信息。 4. **数据修改**:除了读取,...

    利用jsoup 开发的新闻采集器

    Jsoup提供了一种CSS选择器风格的API,`select()`方法可以用来查找文档中的元素。例如,我们可以使用类选择器、ID选择器、标签选择器等来定位新闻条目。一旦找到元素,可以通过`.text()`获取文本内容,通过`.attr()`...

    jsoup-1.12.1.rar

    此外,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.jar,jsoup-1.15.3.jarjsoup-...

    jsoup中文帮助文档

    Jsoup 支持 CSS 选择器语法,这使得定位特定元素变得非常容易。例如,`doc.select("h1.title")` 将选取所有的 class 为 title 的 h1 元素。 8.从元素集合抽取属性、文本和 HTML 内容 `attr(String attributeKey)` ...

    Jsoup

    3. CSS选择器:Jsoup支持CSS选择器,使得定位网页元素变得简单易行。例如,`doc.select("div.container")` 将选取所有class为container的div元素。 4. 清理和规范化:Jsoup提供了一种安全的方式来清理HTML,移除...

    jsoup-1.6.3.rar HTML解析器

    jsoup支持CSS选择器,这使得从HTML中选择特定元素变得轻而易举。使用类似jQuery的语法,如`select("div.container p")`,可以轻松地选取页面上所有class为"container"的div元素内的段落(p)。这种特性极大地提高了...

    Android实战——jsoup实现网络爬虫,糗事百科项目的起步

    jsoup提供了一系列强大的选择器方法,如`select()`,可以使用CSS选择器来定位元素。例如,如果糗事百科的笑话段落是`&lt;p&gt;`标签,我们可以这样获取它们: ```java List&lt;Element&gt; jokes = doc.select("p.joke"); // ...

    jsoup基于java爬虫项目

    2)使用DOM或CSS选择器来查找、取出数据 3)可操作HTML元素、属性、文本 注意:jsoup是基于MIT协议发布的,可放心使用于商业项目。 Jsoup的主要功能 1)从一个URL,文件或字符串中解析HTML 2)使用DOM或CSS选择...

    jsoup-1.6.2.jar

    在标题"jsoup-1.6.2.jar"中,我们可以看出这是一个jsoup的特定版本——1.6.2的jar包,通常用于Java项目中,方便开发者对网页数据进行操作。 **jsoup核心功能** 1. **HTML解析**:jsoup能够解析HTML文档,并将其...

    jsoup操作手册 API

    jsoup的选择器语法与CSS选择器相似,支持ID、类名、标签名选择,以及更复杂的组合选择。例如: - `$("#content")`:选择id为`content`的元素。 - `$(".link")`:选择所有class为`link`的元素。 - `"div.content a"`...

Global site tag (gtag.js) - Google Analytics