//
根據id
獲得節點
element elementdiv = doc.getelementbyid("shop-all-list");
//根據
標籤名獲得節點
elements elementsul = elementdiv.getelementsbytag("ul");
//獲取
elementsul
中第乙個
的標籤節點
elements elements = elementsul.first().getelementsbytag("li");
elements elements1 = element.children();
string targeturl = elements1.get(0).getelementsbytag("a").attr("href");
string img = elements1.get(0).getelementsbytag("img").first().attr("data-src");
//判斷字串中是否包含
//獲得字串中
第一次出現位置
//字串擷取
img = img.substring(0, a + 4);
jsoup解析有很多種方法能得到同樣的結構,就看你想用哪種思路。
有用id定位的,有用tagname獲取的有用class 獲取的。
常用的方法如下:
jsoup提供類似js獲取html元素:
getelementbyid(stringid) 用id獲得元素
getelementsbytag(stringtag) 用標籤獲得元素
getelementsbyclass(stringclassname) 用class獲得元素
getelementsbyattribute(stringkey) 用屬性獲得元素
同時還提供下面的方法提供獲取兄弟節點:siblingelements(),firstelementsibling(), lastelementsibling();nextelementsibling(),previouselementsibling()
獲得與設定元素的資料:
attr(string key) 獲得元素的資料 attr(string key, string value) 設定元素資料
attributes() 獲得所以屬性
id(),classname(),classnames()獲得id class得值
text() 獲得文字值
text(string value) 設定文字值
html() 獲取html
html(string value) 設定html
outerhtml() 獲得內部html
data() 獲得資料內容
tag() 獲得tag 和 tagname() 獲得tagname
操作html元素:
html(string value)
jsoup還提供了類似於jquery方式的選擇器
採用選擇器來檢索資料
tagname 使用標籤名來定位,例如 a
ns|tag 使用命名空間的標籤定位,例如 fb:name 來查詢 元素
#id 使用元素 id 定位,例如 #logo
.class 使用元素的 class 屬性定位,例如 .head
* 定位所有元素
[attribute] 使用元素的屬性進行定位,例如 [href] 表示檢索具有 href 屬性的所有元素
[^attr] 使用元素的屬性名字首進行定位,例如 [^data-] 用來查詢 html5 的 dataset 屬性
[attr=value] 使用屬性值進行定位,例如 [width=500] 定位所有 width 屬性值為 500 的元素
[attr^=value],[attr$=value],[attr*=value] 這三個語法分別代表,屬性以value 開頭、結尾以及包含
[attr~=regex] 使用正規表示式進行屬性值的過濾,例如 img[src~=(?i)\.(png|jpe?g)]
以上是最基本的選擇器語法,這些語法也可以組合起來使用
組合用法:
el#id 定位id值某個元素,例如 a#logo->
el.class 定位 class 為指定值的元素,例如div.head -> ***x
el[attr] 定位所有定義了某屬性的元素,例如 a[href]
以上三個任意組合,例如 a[href]#logo 、a[name].outerlink
除了一些基本的語法以及這些語法進行組合外,jsoup 還支援使用表示式進行元素過濾選擇
:lt(n) 例如 td:lt(3) 表示小於三列
:gt(n) div p:gt(2) 表示 div 中包含 2 個以上的 p
:eq(n) form input:eq(1) 表示只包含乙個 input 的表單
:has(seletor) div:has(p) 表示包含了 p 元素的 div
:not(selector) div:not(.logo) 表示不包含class=logo 元素的所有 div 列表
:contains(text) 包含某文字的元素,不區分大小寫,例如p:contains(oschina)
:containsown(text) 文字資訊完全等於指定條件的過濾
:matches(regex) 使用正規表示式進行文字過濾:div:matches((?i)login)
:matchesown(regex) 使用正規表示式找到自身的文字
關於Jsoup的一些認識
jsoup是解析html的工具,使用時要匯入jsoup.jar包 獲取 的html檔案 獲取jsoup連線 connection con jsoup.connect classno 獲取document物件 document doc con.get 獲取標籤中的html內容,例如sdskd中標籤的內...
jsoup的一些好用的方法
1 empty的方法清空某個元素的文字內容,與jquery的empty的方法有很多的相同點 2。hastext的方法判斷某個元素中是否有文字內容。3。jsoup選擇器與jquery的選擇器幾乎一樣的。1 div div 表示div元素下的後代的所有div元素。2 div div 表示div元素的所有...
網路爬蟲(二) Jsoup的使用
這裡的getelementsbytags得到的是乙個類似陣列,所以需要取第乙個值,即first,text的內容得到的是標籤內的文字內容,這裡可能會有乙個疑問,為什麼jsoup都可以直接得到網頁的內容了,還需要httpclients closeablehttpclient 因為在實際開發中,要用到多執...