jsoup 获取html中body内容_Java 进阶 利用Jsoup获取HTML页面的各分页中的标题信息...
簡(jiǎn)單介紹一下Jsoup
Jsoup是一款Java 的HTML解析器,可直接解析某個(gè)URL地址、HTML文本內(nèi)容。它提供了一套非常省力的API,可通過(guò)DOM,CSS以及類似于Xpath,jQuery的操作方法來(lái)取出和操作元素和數(shù)據(jù)。
使用Jsoup,需要導(dǎo)入Jsoup所需Jar包,Maven工程,直接在pom.xml中引入以下依賴
org.jsoup
jsoup
1.11.3
以下用一個(gè)簡(jiǎn)單的例子使用JSoup,獲取網(wǎng)頁(yè)中各分頁(yè)列表中文章的標(biāo)題,并輸出。這里用到testng,需要提前引入testng相關(guān)jar包。
新增測(cè)試類JsoupTest
package com.jsoup;
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.exceptions.UnirestException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.testng.annotations.Test;
public class JsoupTest {
Elements elements;
@Test
public void getAllPageTitle() throws UnirestException {
int page =1 ;
while(true) {
HttpResponse response = Unirest.get("https://blog.csdn.net/deng214/article/month/2018/05/" + page + "?").asString();
String body = response.getBody();
Document document = Jsoup.parse(body);
elements = document.select("div.article-list");
elements = elements.first().children().select("div:not(div[style=display: none;])").remove();
elements = elements.select("h4>a");
int size = elements.size();
System.out.println("-------------------- 第" + page + "頁(yè),顯示"+size+"條數(shù)據(jù)-------------------- ");
if (size == 0) {
break;
}
if (size < 20 && size > 0) {
getElement();
break;
} else {
getElement();
page++;
}
}
}
public void getElement(){
for (int i = 0; i < elements.size(); i++) {
Element element = elements.get(i);
String href = element.attr("href");
String text = element.text();
System.out.println("標(biāo)題:"+text+"\t 鏈接:"+href);
}
}
}
上述類中,getAllPageTitle方法中用到了unirest(使用Unirest發(fā)送POST請(qǐng)求),發(fā)送向html發(fā)送get請(qǐng)求,獲取響應(yīng)內(nèi)容,通過(guò)Jsoup解析
坑一:因?yàn)橛衐iv是隱藏的或不屬于標(biāo)題鏈接,所以需要排除。這里有坑,花了點(diǎn)時(shí)間,可能也是因?yàn)閷?duì)jsoup不熟。
image.png
elements = document.select("div.article-list");
elements = elements.first().children().select("div:not(div[style=display: none;])").remove();
elements = elements.select("h4>a");
坑二:在遍歷到最后一頁(yè)時(shí),下一頁(yè)并不是不顯示,而是為只讀無(wú)法點(diǎn)擊,所以需要判斷當(dāng)前頁(yè)是否為最后一頁(yè),如果是就需要跳出循環(huán)
if (size == 0) {
break;
}
if (size < 20 && size > 0) {
getElement();
break;
} else {
getElement();
page++;
}
最后輸出結(jié)果是
-------------------- 第1頁(yè),顯示20條數(shù)據(jù)--------------------
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程 鏈接:https://blog.csdn.net/deng214/article/details/80318148
標(biāo)題:轉(zhuǎn) 用SQL語(yǔ)句去掉重復(fù)的記錄 鏈接:https://blog.csdn.net/deng214/article/details/80430109
標(biāo)題:轉(zhuǎn) java中進(jìn)行二進(jìn)制,八進(jìn)制,十六進(jìn)制,十進(jìn)制間,壓縮BCD編碼進(jìn)行相互轉(zhuǎn)換 鏈接:https://blog.csdn.net/deng214/article/details/80429329
標(biāo)題:轉(zhuǎn) java二進(jìn)制,字節(jié)數(shù)組,字符,十六進(jìn)制,BCD編碼轉(zhuǎn)換 鏈接:https://blog.csdn.net/deng214/article/details/80429273
標(biāo)題:原 利用MySQL數(shù)據(jù)庫(kù)自帶加密函數(shù)進(jìn)行加密 鏈接:https://blog.csdn.net/deng214/article/details/80429247
標(biāo)題:原 mysql對(duì)密碼進(jìn)行加密,以及忘記加密后密碼的解決 鏈接:https://blog.csdn.net/deng214/article/details/80429242
標(biāo)題:轉(zhuǎn) java日期時(shí)間各種變換及處理 鏈接:https://blog.csdn.net/deng214/article/details/80417020
標(biāo)題:轉(zhuǎn) MySQL查詢語(yǔ)句測(cè)試練習(xí)題 鏈接:https://blog.csdn.net/deng214/article/details/80414565
標(biāo)題:轉(zhuǎn) MySq常用l查詢語(yǔ)句 鏈接:https://blog.csdn.net/deng214/article/details/80414523
標(biāo)題:轉(zhuǎn) MySQL 復(fù)雜查詢語(yǔ)句2 鏈接:https://blog.csdn.net/deng214/article/details/80414504
標(biāo)題:原 Mysql復(fù)雜查詢語(yǔ)句匯總 鏈接:https://blog.csdn.net/deng214/article/details/80414468
標(biāo)題:轉(zhuǎn) MySQL 50條基礎(chǔ)查詢語(yǔ)句 鏈接:https://blog.csdn.net/deng214/article/details/80414458
標(biāo)題:轉(zhuǎn) 網(wǎng)絡(luò)爬蟲(chóng)URLConnection的使用 鏈接:https://blog.csdn.net/deng214/article/details/80414359
標(biāo)題:轉(zhuǎn) Java爬蟲(chóng)入門(mén)簡(jiǎn)介(五)——抓包工具的使用以及使用HttpClient模擬用戶登錄的訪問(wèn) 鏈接:https://blog.csdn.net/deng214/article/details/80414334
標(biāo)題:轉(zhuǎn) Java爬蟲(chóng)入門(mén)簡(jiǎn)介(四)——HttpClient保存使用Cookie登錄 鏈接:https://blog.csdn.net/deng214/article/details/80400998
標(biāo)題:轉(zhuǎn) Java爬蟲(chóng)入門(mén)簡(jiǎn)介(三) —— Jsoup解析HTML頁(yè)面 鏈接:https://blog.csdn.net/deng214/article/details/80400984
標(biāo)題:轉(zhuǎn) Java爬蟲(chóng)入門(mén)簡(jiǎn)介(二) —— HttpClient詳細(xì)使用方法 鏈接:https://blog.csdn.net/deng214/article/details/80400944
標(biāo)題:轉(zhuǎn) Java爬蟲(chóng)入門(mén)簡(jiǎn)介(一) —— HttpClient請(qǐng)求 鏈接:https://blog.csdn.net/deng214/article/details/80400916
標(biāo)題:轉(zhuǎn) Java讀取和操作大數(shù)據(jù)文本數(shù)據(jù) 鏈接:https://blog.csdn.net/deng214/article/details/80400886
標(biāo)題:轉(zhuǎn) Eclipse使用Maven插件的簡(jiǎn)單介紹 鏈接:https://blog.csdn.net/deng214/article/details/80400797
-------------------- 第2頁(yè),顯示20條數(shù)據(jù)--------------------
標(biāo)題:轉(zhuǎn) MySQL啟用中文全文檢索功能 鏈接:https://blog.csdn.net/deng214/article/details/80400636
標(biāo)題:轉(zhuǎn) 詳述 MySQL 導(dǎo)出數(shù)據(jù)遇到 secure-file-priv 的問(wèn)題 鏈接:https://blog.csdn.net/deng214/article/details/80400590
標(biāo)題:轉(zhuǎn) 詳述查看 MySQL 數(shù)據(jù)文件存儲(chǔ)位置的方法 鏈接:https://blog.csdn.net/deng214/article/details/80400585
標(biāo)題:轉(zhuǎn) 詳述 MySQL 數(shù)據(jù)庫(kù)輸入密碼后閃退的問(wèn)題及解決方案 鏈接:https://blog.csdn.net/deng214/article/details/80400579
標(biāo)題:轉(zhuǎn) 詳述 MySQL 數(shù)據(jù)庫(kù)的安裝及配置 鏈接:https://blog.csdn.net/deng214/article/details/80393015
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(四十四)「存儲(chǔ)過(guò)程」 鏈接:https://blog.csdn.net/deng214/article/details/80392996
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(四十三)「函數(shù)」 鏈接:https://blog.csdn.net/deng214/article/details/80392990
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(四十二)「代碼執(zhí)行結(jié)構(gòu)」 鏈接:https://blog.csdn.net/deng214/article/details/80392977
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(四十一)「觸發(fā)器」 鏈接:https://blog.csdn.net/deng214/article/details/80392958
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(四十)「數(shù)據(jù)庫(kù)變量」 鏈接:https://blog.csdn.net/deng214/article/details/80392946
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(三十九)「事務(wù)(下)」 鏈接:https://blog.csdn.net/deng214/article/details/80392931
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(三十八)「事務(wù)(上)」 鏈接:https://blog.csdn.net/deng214/article/details/80392913
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(三十七)「數(shù)據(jù)備份與還原(下)」 鏈接:https://blog.csdn.net/deng214/article/details/80392905
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(三十六)「數(shù)據(jù)備份與還原(中)」 鏈接:https://blog.csdn.net/deng214/article/details/80392892
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(三十五)「數(shù)據(jù)備份與還原(上)」 鏈接:https://blog.csdn.net/deng214/article/details/80359451
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(三十四)「視圖(下)」 鏈接:https://blog.csdn.net/deng214/article/details/80359439
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(三十三)「視圖(上)」 鏈接:https://blog.csdn.net/deng214/article/details/80359430
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(三十二)「子查詢(下)」 鏈接:https://blog.csdn.net/deng214/article/details/80359427
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(三十一)「子查詢(上)」 鏈接:https://blog.csdn.net/deng214/article/details/80359416
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(三十)「聯(lián)合查詢」 鏈接:https://blog.csdn.net/deng214/article/details/80359398
-------------------- 第3頁(yè),顯示20條數(shù)據(jù)--------------------
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(二十九)「外鍵(下)」 鏈接:https://blog.csdn.net/deng214/article/details/80359388
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(二十八)「外鍵(上)」 鏈接:https://blog.csdn.net/deng214/article/details/80359379
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(二十七)「連接查詢(下)」 鏈接:https://blog.csdn.net/deng214/article/details/80359369
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(二十六)「連接查詢(上)」 鏈接:https://blog.csdn.net/deng214/article/details/80359361
標(biāo)題:轉(zhuǎn) 國(guó)密SM2算法密鑰派生函數(shù)KDF的實(shí)現(xiàn) 鏈接:https://blog.csdn.net/deng214/article/details/80345570
標(biāo)題:轉(zhuǎn) 高速公路ETC卡簽之我見(jiàn)9-常見(jiàn)算法 鏈接:https://blog.csdn.net/deng214/article/details/80345558
標(biāo)題:轉(zhuǎn) 高速公路ETC卡簽之我見(jiàn)8-OBU發(fā)行 鏈接:https://blog.csdn.net/deng214/article/details/80345554
標(biāo)題:轉(zhuǎn) 高速公路ETC卡簽之我見(jiàn)7-用戶卡發(fā)行 鏈接:https://blog.csdn.net/deng214/article/details/80345552
標(biāo)題:轉(zhuǎn) 高速公路ETC卡簽之我見(jiàn)6-省級(jí)密鑰系統(tǒng)建設(shè) 鏈接:https://blog.csdn.net/deng214/article/details/80345534
標(biāo)題:轉(zhuǎn) 高速公路ETC卡簽之我見(jiàn)5-國(guó)標(biāo)密鑰體系介紹 鏈接:https://blog.csdn.net/deng214/article/details/80345532
標(biāo)題:轉(zhuǎn) 高速公路ETC卡簽之我見(jiàn)4-卡簽結(jié)構(gòu)說(shuō)明 鏈接:https://blog.csdn.net/deng214/article/details/80345526
標(biāo)題:轉(zhuǎn) 高速公路ETC卡簽之我見(jiàn)3-卡片圈存 鏈接:https://blog.csdn.net/deng214/article/details/80345521
標(biāo)題:轉(zhuǎn) 高速公路ETC卡簽之我見(jiàn)2-卡片消費(fèi) 鏈接:https://blog.csdn.net/deng214/article/details/80345517
標(biāo)題:轉(zhuǎn) 高速公路ETC卡簽1-概述 鏈接:https://blog.csdn.net/deng214/article/details/80345513
標(biāo)題:轉(zhuǎn) JAVA 數(shù)據(jù)表反射實(shí)體類,自動(dòng)生成實(shí)體類 鏈接:https://blog.csdn.net/deng214/article/details/80337534
標(biāo)題:轉(zhuǎn) java--生成實(shí)體類方法 鏈接:https://blog.csdn.net/deng214/article/details/80337517
標(biāo)題:轉(zhuǎn) java--封裝淺談 鏈接:https://blog.csdn.net/deng214/article/details/80337474
標(biāo)題:轉(zhuǎn) Java -- 20個(gè)非常有用的Java程序片段 鏈接:https://blog.csdn.net/deng214/article/details/80337453
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(二十五)「數(shù)據(jù)的高級(jí)操作 之 查詢(下)」 鏈接:https://blog.csdn.net/deng214/article/details/80336875
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(二十四)「數(shù)據(jù)的高級(jí)操作 之 查詢(中)」 鏈接:https://blog.csdn.net/deng214/article/details/80336858
-------------------- 第4頁(yè),顯示20條數(shù)據(jù)--------------------
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(二十三)「數(shù)據(jù)的高級(jí)操作 之 查詢(上)」 鏈接:https://blog.csdn.net/deng214/article/details/80336849
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(二十二)[數(shù)據(jù)的高級(jí)操作 之 更新 & 刪除] 鏈接:https://blog.csdn.net/deng214/article/details/80336832
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(二十一)「數(shù)據(jù)的高級(jí)操作 之 蠕蟲(chóng)復(fù)制」 鏈接:https://blog.csdn.net/deng214/article/details/80336809
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(二十)「數(shù)據(jù)的高級(jí)操作 之 主鍵沖突」 鏈接:https://blog.csdn.net/deng214/article/details/80336797
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(十九)「范式」 鏈接:https://blog.csdn.net/deng214/article/details/80318092
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(十八)「關(guān)系」 鏈接:https://blog.csdn.net/deng214/article/details/80318084
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(十七)「索引」 鏈接:https://blog.csdn.net/deng214/article/details/80318073
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(十六)「列屬性 之 唯一鍵」 鏈接:https://blog.csdn.net/deng214/article/details/80318064
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(十五)「列屬性 之 自動(dòng)增長(zhǎng)」 鏈接:https://blog.csdn.net/deng214/article/details/80318053
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(十四)「列屬性 之 主鍵」 鏈接:https://blog.csdn.net/deng214/article/details/80318033
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(十三)「列屬性 之 空屬性、列描述和默認(rèn)值」 鏈接:https://blog.csdn.net/deng214/article/details/80318026
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(十二)「記錄長(zhǎng)度」 鏈接:https://blog.csdn.net/deng214/article/details/80318012
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(十一)「列類型 之 字符串型」 鏈接:https://blog.csdn.net/deng214/article/details/80318000
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(十)「列類型 之 日期時(shí)間型」 鏈接:https://blog.csdn.net/deng214/article/details/80277881
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(九)「列類型 之 數(shù)值型」 鏈接:https://blog.csdn.net/deng214/article/details/80277833
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(八)「校對(duì)集問(wèn)題」 鏈接:https://blog.csdn.net/deng214/article/details/80277811
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(七)「中文數(shù)據(jù)問(wèn)題」 鏈接:https://blog.csdn.net/deng214/article/details/80277795
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(六)「SQL 基本操作 之 數(shù)據(jù)操作」 鏈接:https://blog.csdn.net/deng214/article/details/80277784
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(五)「SQL 基本操作 之 表操作」 鏈接:https://blog.csdn.net/deng214/article/details/80277744
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(四)「SQL 基本操作 之 庫(kù)操作」 鏈接:https://blog.csdn.net/deng214/article/details/80277711
-------------------- 第5頁(yè),顯示3條數(shù)據(jù)--------------------
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(三)「 MySQL 數(shù)據(jù)庫(kù)」 鏈接:https://blog.csdn.net/deng214/article/details/80277693
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(二)「關(guān)系型數(shù)據(jù)庫(kù)」 鏈接:https://blog.csdn.net/deng214/article/details/80277669
標(biāo)題:轉(zhuǎn) 史上最簡(jiǎn)單的 MySQL 教程(一)「數(shù)據(jù)庫(kù)」 鏈接:https://blog.csdn.net/deng214/article/details/80277623
===============================================
Default Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================
jsoup使用手冊(cè)可參考文章:Jsoup詳解(官方)
END
如果你喜歡我的分享,那就在右下角點(diǎn)個(gè)喜歡吧
你的鼓勵(lì)是我最大的動(dòng)力來(lái)源,在此深表感恩
軟件測(cè)試的路上,我們可以互相關(guān)注,相互學(xué)習(xí),共同進(jìn)步,微信ID:929194573
總結(jié)
以上是生活随笔為你收集整理的jsoup 获取html中body内容_Java 进阶 利用Jsoup获取HTML页面的各分页中的标题信息...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 甘特图 知乎_如何使用 Excel 绘制
- 下一篇: html语言书写注意事项,HTML注意事