`
美丽的小岛
  • 浏览: 310993 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

jsoup select 选择器

 
阅读更多

问题

采用CSS或类似jquery 选择器(selector)语法来处理HTML文档中的数据。

方法

利用方法: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]"); // a with href
Elements pngs = doc.select("img[src$=.png]");  // img with src ending .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)的选择器语法的查找匹配的元素,可实现功能强大且鲁棒性好的查询。

jsoup elements support a CSS(or jquery) like selector syntax to find matching elements, that allows very powerful and robust queries.

Select方法可作用于DocumentElementElements,且是上下文相关的,因此可实现指定元素的过滤,或者链式选择访问。

The selectmethod is available in a DocumentElement, or in Elements. It is contextual, so you can filter by selecting from a specific element, or by chaining select calls.

选择(操作)返回元素列表(Elements),并提供一组方法来提取或处理结果。

Select returns a list of Elements (as Elements), which provides a range of methods to extract and manipulate the results.

选择器概要(Selector overview)

  • Tagname:通过标签查找元素(例如:a)
  • ns|tag:通过标签在命名空间查找元素,例如:fb|name查找<fb:name>元素
  • #id:通过ID查找元素,例如#logo
  • .class:通过类型名称查找元素,例如.masthead
  • [attribute]:带有属性的元素,例如[href]
  • [^attr]:带有名称前缀的元素,例如[^data-]查找HTML5带有数据集(dataset)属性的元素
  • [attr=value]:带有属性值的元素,例如[width=500]
  • [attr^=value],[attr$=value],[attr*=value]:包含属性且其值以value开头、结尾或包含value的元素,例如[href*=/path/]
  • [attr~=regex]:属性值满足正则表达式的元素,例如img[src~=(?i)\.(png|jpe?g)]
  • *:所有元素,例如*

选择器组合方法

  • el#id::带有ID的元素ID,例如div#logo
  • el.class:带类型的元素,例如. div.masthead
  • el[attr]:包含属性的元素,例如a[href]
  • 任意组合:例如a[href].highlight
  • ancestor child:继承自某祖(父)元素的子元素,例如.body p查找“body”块下的p元素
  • parent > child:直接为父元素后代的子元素,例如: div.content > pf查找p元素,body > * 查找body元素的直系子元素
  • siblingA + siblingB:查找由同级元素A前导的同级元素,例如div.head + div
  • siblingA ~ siblingX:查找同级元素A前导的同级元素X例如h1 ~ p
  • el, el, el:多个选择器组合,查找匹配任一选择器的唯一元素,例如div.masthead, div.logo

伪选择器(Pseudo selectors)

  • :lt(n):查找索引值(即DOM树中相对于其父元素的位置)小于n的同级元素,例如td:lt(3)
  • :gt(n):查找查找索引值大于n的同级元素,例如div p:gt(2)
  • :eq(n) :查找索引值等于n的同级元素,例如form input:eq(1)
  • :has(seletor):查找匹配选择器包含元素的元素,例如div:has(p)
  • :not(selector):查找不匹配选择器的元素,例如div:not(.logo)
  • :contains(text):查找包含给定文本的元素,大小写铭感,例如p:contains(jsoup)
  • :containsOwn(text):查找直接包含给定文本的元素
  • :matches(regex):查找其文本匹配指定的正则表达式的元素,例如div:matches((?i)login)
  • :matchesOwn(regex):查找其自身文本匹配指定的正则表达式的元素
  • 注意:上述伪选择器是0-基数的,亦即第一个元素索引值为0,第二个元素index为1等

详见SelectorAPI 参考资料所列全部信息和细节。

【原文】http://jsoup.org/cookbook/extracting-data/selector-syntax

分享到:
评论

相关推荐

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

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

    JSoup CSS选择器用法大全

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

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

    通过jsoup提供的`select()`方法,我们可以轻松地将这些选择器应用于HTML文档,提取或修改所需的数据。例如,对于名为`testJsoup.html`的文件,我们可以这样做: ```java File file = new File("testJsoup.html"); ...

    jsoup 网页信息 抓取 选择器

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

    Jsoup语法详解

    2. 使用选择器方式:使用select()方法,可以使用CSS选择器来选择HTML元素。 Jsoup的选择器语法 Jsoup的选择器语法类似于CSS选择器,包括: * 元素选择器:使用标签名,例如"a",可以选择所有的超链接元素。 * ...

    JsoupAPI(jsoup帮助文档)

    提供了对HTML结构的访问,如`select()`方法用于CSS选择器查询,`html()`方法获取或设置整个文档的HTML源码。 - **Element对象**:表示HTML元素,每个HTML标签都对应一个Element。Element拥有丰富的API,如`text()`...

    Jsoup

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

    Jsoup 1.5.2 和jsoup 1.6

    4. **选择元素**:利用CSS选择器选取需要的元素,如`doc.select("selector")`。 5. **提取数据**:使用Element对象的方法,如text()、attr()等,获取元素的文本或属性值。 6. **修改HTML**:如果需要修改页面内容,...

    jsoup中文帮助文档

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

    利用jsoup 开发的新闻采集器

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

    jsoup1.10.3包和jsoupApi帮助文档

    - **Selector**:提供CSS选择器来查找HTML元素,如`select("tagname")`或`select(".class")`。 - **Parser**:用于解析HTML或XML字符串到Document对象。 - **Cleaner**和**Whitelist**:用于HTML清理,定义允许的...

    jsoup-1.7.1 chm

    jsoup还引入了对CSS选择器的支持,这使得从HTML文档中选取元素变得非常直观,尤其是对于熟悉Web开发的开发者来说。例如,`doc.select("div.classname")`将返回所有class为"classname"的`&lt;div&gt;`元素。这种选择器的...

    jsoup常用包下载

    jsoup支持CSS选择器,这使得定位HTML元素变得极其简单。CSS选择器语法广泛应用于网页设计中,现在也可以在jsoup中用于查找和操作HTML元素。例如,你可以使用".class"、"#id"、"[attribute=value]"等语法来选取元素。...

    jsoup-1.6.3.rar HTML解析器

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

    jsoup-jar包

    你可以通过CSS选择器选择元素,就像在jQuery中那样: ```java Elements links = doc.select("a[href]"); for (Element link : links) { System.out.println(link.attr("href")); } ``` **3. 数据提取** JSoup...

    jsoup开发例子学习使用

    jsoup提供了丰富的选择器语法,类似于CSS选择器,可以轻松地定位到HTML元素。例如,获取网页的标题: ```java String title = doc.title(); System.out.println("Title: " + title); ``` 此外,我们还可以获取或...

    jsoup的jar包

    例如,通过`doc.getElementById("id")`或`doc.select("css选择器")`,开发者可以快速定位到目标元素。 此外,jsoup还集成了CSS选择器,这使得开发者可以用类似jQuery的方式来选取HTML元素。对于熟悉前端开发的人来...

    Jsoup.jar 包及说明文档

    Jsoup的核心特性在于其能够模拟浏览器的行为,对HTML进行理解和解析,使得开发者可以像使用jQuery那样通过DOM和CSS选择器轻松地获取和操作HTML元素。 **一、Jsoup的功能** 1. **HTML解析**:Jsoup能够准确地解析...

    Jsoup爬虫简单案例

    3. **选择元素**:使用Jsoup提供的选择器方法,如`select()`,可以方便地定位到我们需要的HTML元素。例如,要选取所有的`&lt;p&gt;`标签,可以这样写: ```java Elements paragraphs = doc.select("p"); ``` 4. **...

    jsoup jar包

    6. **JsoupXpath**:虽然JSoup的主要选择方式是CSS选择器,但有时开发者可能更习惯于XPath表达式。JsoupXpath是一个可选的扩展,它为JSoup提供了XPath支持,使得那些熟悉XPath语法的开发者也能在JSoup中方便地工作。...

Global site tag (gtag.js) - Google Analytics