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