在Java代碼中解析html,獲取其中的值方法
有時(shí)我們獲取到了頁(yè)面需要在Java代碼中進(jìn)行解析,獲取html中的數(shù)據(jù),Jsoup是一個(gè)很方便的工具。
一、什么是Jsoup?
官網(wǎng)網(wǎng)站:http://jsoup.org/
可在官網(wǎng)下載對(duì)應(yīng)的jar
通俗的將Jsoup就是一個(gè)解析網(wǎng)頁(yè)的東西
二、示例
1、頁(yè)面,通過(guò)查詢獲取到了一些數(shù)據(jù):

2、源碼,這是一個(gè)table,class="list",通過(guò)這些來(lái)唯一標(biāo)識(shí)它

3、代碼,將html以String的形式傳進(jìn)來(lái),使用Jsoup進(jìn)行解析:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public calss MyTest {
public static void demo1(String htmltest) {
String html = htmltest;
Document doc = Jsoup.parse(html);
Elements rows = doc.select("table[class=list]").get(0).select("tr");
if (rows.size() == 1) {
System.out.println("沒(méi)有結(jié)果");
}else {
System.out.println("--------------------------- 查詢結(jié)果 ---------------------------");
Element row = rows.get(1);
System.out.println("暫存單號(hào):" + row.select("td").get(0).text());
System.out.println("投保單號(hào):" + row.select("td").get(1).text());
System.out.println("保單號(hào):" + row.select("td").get(2).text());
System.out.println("投保人:" + row.select("td").get(3).text());
System.out.println("被保險(xiǎn)人:" + row.select("td").get(4).text());
System.out.println("號(hào)牌號(hào)碼:" + row.select("td").get(5).text());
System.out.println("車架號(hào):" + row.select("td").get(6).text());
System.out.println("錄單人:" + row.select("td").get(7).text());
System.out.println("投保日期:" + row.select("td").get(8).text());
System.out.println("暫存單狀態(tài):" + row.select("td").get(9).text());
System.out.println("狀態(tài):" + row.select("td").get(10).text());
System.out.println("-----------------------------------------------------------------");
}
}
}
4、輸出結(jié)果:

更多的使用方法可以去詳細(xì)閱讀Jsoup的API
以上這篇在Java代碼中解析html,獲取其中的值方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java 代碼實(shí)例解析設(shè)計(jì)模式之監(jiān)聽(tīng)者模式
所謂監(jiān)聽(tīng)者模式,我理解的是構(gòu)建一個(gè)容器存放所有被監(jiān)聽(tīng)的線程或?qū)ο?,監(jiān)聽(tīng)每個(gè)線程或?qū)ο蟀l(fā)生的變化,若某個(gè)線程或?qū)ο笥|發(fā)指定規(guī)則,那么則對(duì)所有被監(jiān)聽(tīng)的線程或?qū)ο蟾鶕?jù)業(yè)務(wù)需要做處理2021-10-10
Java?Spring?事件監(jiān)聽(tīng)詳情解析
這篇文章主要介紹了Java?Spring?事件監(jiān)聽(tīng)詳情解析,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07
SpringBoot之Java配置的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot之Java配置的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
基于struts2和hibernate實(shí)現(xiàn)登錄和注冊(cè)功能
這篇文章主要為大家詳細(xì)介紹了基于struts2和hibernate實(shí)現(xiàn)登錄和注冊(cè)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
java 使用ConcurrentHashMap和計(jì)數(shù)器實(shí)現(xiàn)鎖
這篇文章主要介紹了java 使用ConcurrentHashMap和計(jì)數(shù)器實(shí)現(xiàn)鎖的相關(guān)資料,需要的朋友可以參考下2017-05-05
Java設(shè)計(jì)模式之責(zé)任鏈模式(Chain of Responsibility模式)介紹
這篇文章主要介紹了Java設(shè)計(jì)模式之責(zé)任鏈模式(Chain of Responsibility模式)介紹,本文講解了如何使用責(zé)任鏈模式,并給出了4種使用實(shí)例,需要的朋友可以參考下2015-03-03
一文教你使用Java?Calendar類進(jìn)行日期計(jì)算
在日常開(kāi)發(fā)中,我們常常需要進(jìn)行日期計(jì)算,比如計(jì)算兩個(gè)日期之間的天數(shù)、月數(shù),在Java中,我們可以使用Java?Calendar類來(lái)進(jìn)行日期計(jì)算,下面就跟隨小編一起來(lái)學(xué)習(xí)一下吧2023-10-10

