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
分享到:
相关推荐
CSS 选择器是用于选取 HTML 或 XML 文档中元素的语法,它们在网页爬虫、页面解析以及动态网页内容的提取中扮演着重要角色。下面将详细介绍 JSoup 支持的各种 CSS 选择器及其用法。 1. **基本选择器**: - `*`: ...
Jsoup的选择器语法类似于CSS选择器,包括: * 元素选择器:使用标签名,例如"a",可以选择所有的超链接元素。 * 属性选择器:使用"[attribute]",例如"a[href]",可以选择所有具有href属性的超链接元素。 * 后缀...
Jsoup 支持 CSS 选择器语法,这使得定位特定元素变得非常容易。例如,`doc.select("h1.title")` 将选取所有的 class 为 title 的 h1 元素。 8.从元素集合抽取属性、文本和 HTML 内容 `attr(String attributeKey)` ...
3. **选择器(Selectors)**: JSoup 支持 CSS 选择器,允许通过简洁的语法定位 HTML 元素,如 `doc.select("div.classname")`。 4. **元素(Element)**: Element 类代表 HTML 元素,包含元素的属性和子元素。可以...
开发者可以通过使用选择器语法来查询和操作HTML文档树。 通过Jsoup的parse方法,开发者可以传入HTML字符串或指定一个基础URI来解析HTML文档。Jsoup的解析方法包括了多个重载版本,可以处理不同的输入,如: - ...
2. **选择器语法**:Jsoup支持类似于CSS的选择器,使得定位HTML元素变得简单直观。例如,`doc.select("p")`将选取所有的段落元素。 3. **DOM操作**:如同操作DOM树一样,可以对Document对象进行增删改查操作,如...
CSS选择器语法广泛应用于网页设计中,现在也可以在jsoup中用于查找和操作HTML元素。例如,你可以使用".class"、"#id"、"[attribute=value]"等语法来选取元素。 ```java Elements links = doc.select("a[href]"); ...
2. **CSS选择器**:Jsoup支持CSS选择器,这意味着你可以通过类似于jQuery的语法选取页面上的特定元素。 3. **数据提取**:通过元素选择器,可以方便地获取元素的文本、属性值等信息。 4. **数据修改**:除了读取,...
2. 提供了强大的选择器语法,如CSS选择器,用于快速定位HTML元素。 3. 可以方便地提取文本、链接、图片等信息。 4. 内置了HTML清理功能,确保解析后的文档结构完整且安全。 5. 支持DOM操作,如添加、删除或修改元素...
Jsoup的选择器语法非常强大,允许你通过CSS选择器来查找元素。选择器可以单独使用,也可以组合使用,或者使用伪选择器来达到更复杂的选择效果。 #### 从元素抽取属性、文本和HTML Jsoup提供了方法来从元素中抽取...
jsoup的选择器语法与CSS选择器相似,支持ID、类名、标签名选择,以及更复杂的组合选择。例如: - `$("#content")`:选择id为`content`的元素。 - `$(".link")`:选择所有class为`link`的元素。 - `"div.content a"`...
- **选择器语法**:借鉴了jQuery的语法,jsoup提供了一种简洁的方式来定位HTML元素。通过CSS选择器,可以快速找到需要的元素,如`getElementById`、`getElementsByTag`等。 - **数据提取**:jsoup可以方便地获取...
2. **CSS选择器**:通过类似jQuery的语法,可以选择HTML元素,如`$("#id")`或`$(".class")`。 3. **数据提取**:可以方便地获取元素的属性值,如链接(`href`)、文本内容等。 4. **数据修改**:Jsoup还支持对HTML...
- **CSS选择器**:jsoup支持CSS选择器,这使得查找和选择HTML元素变得非常简单。你可以像使用jQuery一样,通过类名、ID、属性等来定位元素。 - **数据提取**:jsoup提供了丰富的API,允许开发者提取HTML元素的文本...
jsoup支持CSS选择器,这使得从HTML中选择特定元素变得轻而易举。使用类似jQuery的语法,如`select("div.container p")`,可以轻松地选取页面上所有class为"container"的div元素内的段落(p)。这种特性极大地提高了...
jsoup提供了丰富的选择器语法,类似于CSS选择器,可以轻松地定位到HTML元素。例如,获取网页的标题: ```java String title = doc.title(); System.out.println("Title: " + title); ``` 此外,我们还可以获取或...
Jsoup能够模拟浏览器的行为,理解HTML文档的结构,并通过CSS选择器进行元素定位,非常适合网页数据的提取和分析。 在解析HTML时,Jsoup首先将HTML文档转化为一个DOM(Document Object Model)树,这个树状结构代表...
- **选择器API**:类似于jQuery的选择器语法,如`getElementById`, `getElementsByTag`, `select("css selector")`等,使查找HTML元素变得简单。 - **数据提取**:可以方便地获取元素的文本、属性值等信息,如`...
2. **选择器语法**:JSoup支持CSS选择器,使得定位网页元素变得直观易懂,如`select("div.classname")`可以获取所有class为"classname"的div元素。 3. **数据提取**:通过元素选择器,开发者可以轻易获取特定元素的...
JSoup提供了丰富的选择器语法,如`:containsText`, `:hasAttr`, `:matches`等,可以用于精确地过滤和查找元素。 **注意事项** 1. **网络连接问题:** 连接网页时,可能会遇到网络超时、重定向、权限等问题,需要...