jsoup基礎

 最近在研究如何解析Html文件,瞭解到jsoup是一個基於Java的開源HTML解析器,其官網地址以下:css

http://jsoup.org/html

jsoup最大的特色,或者說,它比使用DOM4J進行HTML解析更好的緣由,是它能夠採用jQuery選擇器的語法,例如:正則表達式

1.Document doc=Jsoup.connect("http://en.wikipedia.org/").get();數組

2.Elements  newsHeadlines=doc.select("#mp-itn  b  a");spa

上述代碼就是獲取了http://en.wikipedia.org/頁面中id爲mp-itn的元素下的<b>標籤中的<a>標籤,與jQuery選擇器的結果一致。orm

爲了精確的解析到html頁面中的某一個標籤,我特意查了一些關於jQuery選擇器的資料htm

jQuery的選擇器可謂強大無比,這裏簡單地介紹一下經常使用的元素查找方法:對象

$("#myElement")選擇id值等於myElement的元素,id值不能重複在文檔中只能有一個id值是myElement,因此獲得的是惟一的元素。ip

$("div")選擇全部的div標籤元素,返回div元素數組element

$(".myClass")選擇使用myClass類的css的全部元素

$("*") 選擇文檔中全部的元素,能夠運用多種的選擇方式進行聯合選擇

 

基本過濾選擇器

$("tr:first")  選擇全部tr元素的第一個

$("tr:last")   選擇全部tr元素的最後一個

$("A B")查找A元素下面的全部子節點,包括非直接子節點

$("form input")  選擇全部的form元素中的input元素

 

select詳解

描述:HTML代碼的select寫法

經過標籤名來查找

Elements elements=doc.select("span");

注:經過標籤來查找,直接寫"標籤名"就好,不須要尖括號

經過id來查找

Elements elements=doc.select("#mySpan");

注:經過id來查找,使用方法跟css指定元素同樣,用#

經過class名來查找

Elements elements=doc.select(".myClass");

注:經過id來查找,使用方法跟css指定元素同樣,用.

利用標籤內屬性名查找元素

Elements elements=doc.select("span[class=class1]span[id=id1]");

注:規則爲標籤名[屬性名=屬性值] ,標籤名可寫可不寫,多個屬性即多個[],如上。

利用標籤內屬性名前綴查找元素

Elements elements=doc.select("span["c1]");

注:規則爲 標籤名["屬性名前綴],標籤名可寫可不寫,多個屬性即多個[]。

利用標籤內屬性名+正則表達式查找元素

Elements elements=doc.select("span[class=AB]");

注:規則爲  標籤名[屬性名=正則表達式],以上正則表達式的意思是查找以class值以AB爲開頭的標籤,標籤可寫可不寫,多個屬性即多個[]

利用標籤文本包含某些內容來查找

Elements elements=doc.select("span:contains(3)");

注:規則爲 標籤名:contains(文本值)

利用標籤文本包含某些內容+正則表達式來查找

Elements elements=doc.select("span:matchesOwn(3)");

注:規則爲  標籤名:matchesOwn(正則表達式),以上的正則表達式的意思是

以文本值以3爲開頭的標籤

select方法返回的是一個Elements對象,裏面包含着找到的全部節點,遍歷Elements,經過get(index),就能夠拿出具體的節點了。經過節點的text()方法,就可拿出文本值。

相關文章
相關標籤/搜索