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