Jsoup笔记


1. 什么是Jsoup

  • Jsoup是一款Java 的HTML(html也是XML文档)解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery选择器的操作方法来取出和操作数据。所以使用jsoup就可以解析HTML。
  • Jsoup使用的是DOM解析方式,把整个HTML文档(XML文档)加载到内存中形成一棵DOM树,得到文档的Document对象。HTML里的标签,会转换成Element对象。
  • jar包:

2. Jsoup的基本使用步骤

  1. 解析HTML,得到Document对象
  2. 从Document里找到标签Element对象
  3. 从Element上获取数据(标签体、或属性值)

三、Jsoup的API介绍

1. 获取Document对象

 
Jsoup类提供了三种常用方法:
方法
参数
返回值
说明
parse(html)
html:html字符串
Document
 
parse(file,charset)
file:html文件<br />charset:字符集
Document
 
connect(url).get()
url:网址
Document
 

2. 获取Element对象

2.1 类似js的方式

 
Document提供提供了常用方法:
方法
参数
返回值
说明
getElementById(id)
id:标签的id
Element
 
getElementsByTag(tagName)
tagName:标签名称
Elements
 
getElementsByClass(className)
className:类名
Elements
 
getElementsByAttribute(attrName)
attrName:属性名
Elements
 
parent()
 
Element
 
children()
 
Elements
 
Element:标签转换成的一个对象
Elements:本质是ArrayList<Element>,是一个Element的集合

2.2 类似jQuery选择器的方式

 
css-like语法
 
2.2.1 常用选择器
  • 基本选择器
    • 标签选择器:div
    • ID选择器:#div1
    • 类选择器:.cls
    • 组合选择器:div.cls --获取类名为cls的div元素
  • 层级选择器
    • A B:获取A元素的后代元素B
    • A>B:获取A元素的子元素B
    • A+B:获取A元素后边相邻的B元素
    • A~B:获取A元素后边所有的B元素
  • 属性选择器
    • A[attr]:获取包含attr属性的A元素
    • A[attr=value]:获取attr属性值是value的A元素
    • A[attr^=value]:获取attr属性值以value开头的A元素
    • A[attr$=value]:获取attr属性值以value结尾的A元素
    • A[attr*=value]:获取attr属性值里包含value的A元素
  • 伪选择器(基本过滤选择器)
    • :gt(n):获取索引大于n的
    • :eq(n):获取索引等于n的
    • :has(selector):获取包含有selector结果的元素。比如:li:has(a)获取里边有a元素的li元素
    • :not(selector):排除selector选择的结果不要
2.2.2 选择器使用方法
  • Elements elements = document.select(String cssQuery)
    • Document对象可以使用此方法:从整个html文档里查找
    • Element对象也可以使用此方法:从某Element标签内部查找
    • Elements对象也可以使用此方法:从一批Elements标签内部查找

3. 获取数据

 
Element和Elements提供了获取数据的方法:
方法
参数
返回值
说明
html()
 
String
获取标签体内容
text()
 
String
获取第一个标签体文本内容
eachText()
 
List<String>
获取Elements里每个标签的文本内容
attr(attrName)
attrName:属性名
String
获取属性值


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM