`
chenlong_1988
  • 浏览: 185497 次
  • 性别: Icon_minigender_2
社区版块
存档分类

JSOUP教程:JSOUP选择器语法说明

阅读更多

jsoup 是一款基于Java 的HTML解析器,可直接解析某个URL地址或HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
jsoup的强大在于它对文档元素的检索,Select方法将返回一个Elements集合,并提供一组方法来抽取和处理结果,要掌握Jsoup首先要熟悉它的选择器语法。
1、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)]
  • *: 这个符号将匹配所有元素

2、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

3、Selector伪选择器语法

  • :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等。

 

转自http://www.tangqq.com/?p=37

分享到:
评论

相关推荐

    JSoup CSS选择器用法大全

    CSS 选择器是用于选取 HTML 或 XML 文档中元素的语法,它们在网页爬虫、页面解析以及动态网页内容的提取中扮演着重要角色。下面将详细介绍 JSoup 支持的各种 CSS 选择器及其用法。 1. **基本选择器**: - `*`: ...

    Jsoup语法详解

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

    jsoup中文帮助文档

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

    jsoup api 文档和教程文档

    3. **选择器(Selectors)**: JSoup 支持 CSS 选择器,允许通过简洁的语法定位 HTML 元素,如 `doc.select("div.classname")`。 4. **元素(Element)**: Element 类代表 HTML 元素,包含元素的属性和子元素。可以...

    最新的 jsoup教程

    开发者可以通过使用选择器语法来查询和操作HTML文档树。 通过Jsoup的parse方法,开发者可以传入HTML字符串或指定一个基础URI来解析HTML文档。Jsoup的解析方法包括了多个重载版本,可以处理不同的输入,如: - ...

    org.jsoup.jar

    2. **选择器语法**:Jsoup支持类似于CSS的选择器,使得定位HTML元素变得简单直观。例如,`doc.select("p")`将选取所有的段落元素。 3. **DOM操作**:如同操作DOM树一样,可以对Document对象进行增删改查操作,如...

    jsoup常用包下载

    CSS选择器语法广泛应用于网页设计中,现在也可以在jsoup中用于查找和操作HTML元素。例如,你可以使用".class"、"#id"、"[attribute=value]"等语法来选取元素。 ```java Elements links = doc.select("a[href]"); ...

    Jsoup 1.5.2 和jsoup 1.6

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

    Jsoup1.11.1+HTTPClient4.5.3的最新全部jar包

    2. 提供了强大的选择器语法,如CSS选择器,用于快速定位HTML元素。 3. 可以方便地提取文本、链接、图片等信息。 4. 内置了HTML清理功能,确保解析后的文档结构完整且安全。 5. 支持DOM操作,如添加、删除或修改元素...

    jsoup中文教程

    Jsoup的选择器语法非常强大,允许你通过CSS选择器来查找元素。选择器可以单独使用,也可以组合使用,或者使用伪选择器来达到更复杂的选择效果。 #### 从元素抽取属性、文本和HTML Jsoup提供了方法来从元素中抽取...

    jsoup操作手册 API

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

    jsoup-1.11.3

    - **选择器语法**:借鉴了jQuery的语法,jsoup提供了一种简洁的方式来定位HTML元素。通过CSS选择器,可以快速找到需要的元素,如`getElementById`、`getElementsByTag`等。 - **数据提取**:jsoup可以方便地获取...

    JsoupDemo可运行的完整工程

    2. **CSS选择器**:通过类似jQuery的语法,可以选择HTML元素,如`$("#id")`或`$(".class")`。 3. **数据提取**:可以方便地获取元素的属性值,如链接(`href`)、文本内容等。 4. **数据修改**:Jsoup还支持对HTML...

    jsoup-1.11.2.jar.zip

    - **CSS选择器**:jsoup支持CSS选择器,这使得查找和选择HTML元素变得非常简单。你可以像使用jQuery一样,通过类名、ID、属性等来定位元素。 - **数据提取**:jsoup提供了丰富的API,允许开发者提取HTML元素的文本...

    jsoup-1.6.3.rar HTML解析器

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

    jsoup开发例子学习使用

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

    Jsoup库文件;Jsoup解析Java包

    Jsoup能够模拟浏览器的行为,理解HTML文档的结构,并通过CSS选择器进行元素定位,非常适合网页数据的提取和分析。 在解析HTML时,Jsoup首先将HTML文档转化为一个DOM(Document Object Model)树,这个树状结构代表...

    Jsoup工具jar包

    - **选择器API**:类似于jQuery的选择器语法,如`getElementById`, `getElementsByTag`, `select("css selector")`等,使查找HTML元素变得简单。 - **数据提取**:可以方便地获取元素的文本、属性值等信息,如`...

    jsoup.rar下载后解压就是jsoup.jar包进行使用

    2. **选择器语法**:JSoup支持CSS选择器,使得定位网页元素变得直观易懂,如`select("div.classname")`可以获取所有class为"classname"的div元素。 3. **数据提取**:通过元素选择器,开发者可以轻易获取特定元素的...

    jsoup解析返回的html

    JSoup提供了丰富的选择器语法,如`:containsText`, `:hasAttr`, `:matches`等,可以用于精确地过滤和查找元素。 **注意事项** 1. **网络连接问题:** 连接网页时,可能会遇到网络超时、重定向、权限等问题,需要...

Global site tag (gtag.js) - Google Analytics