隨著網路資訊爆炸性成長,越來越多的應用程式需要從 Web 頁面上取得相關資料。 JSoup是一款Java HTML解析器,可以方便地從Web頁面中提取和操作資料。在Java API開發中,JSoup是一款重要且常用的工具。本文將介紹如何使用JSoup進行Web抓取。
一、JSoup的引入和基本用法
1.引入JSoup
JSoup是一款Java HTML解析器,開發者可以透過Maven 將其引入專案中,加入以下依賴即可:
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.14.2</version> </dependency>
2.基本用法
使用JSoup需要先將HTML頁面的內容解析成Document
對象,然後可以透過這個物件來取得頁面中的各種元素。以下是JSoup的基本用法範例:
String url = "https://www.baidu.com/"; Document document = Jsoup.connect(url).get(); // 通过 URL 加载页面 // 获取页面标题 String title = document.title(); // 获取页面所有超链接 Elements links = document.select("a[href]"); // 循环遍历页面中的所有链接 for(Element link: links){ String linkHref = link.attr("href"); String linkText = link.text(); }
二、使用JSoup進行Web抓取
1.透過URL取得頁面資訊
使用JSoup的方法connect (url).get()
可以透過指定的URL位址取得頁面信息,如下所示:
String url = "https://www.baidu.com/"; Document document = Jsoup.connect(url).get();
2.解析HTML元素
根據頁面的結構,使用select()
方法可以快速取得所需的元素。以下是使用JSoup取得所有連結的範例:
Elements links = document.select("a[href]"); for(Element link: links){ String linkHref = link.attr("href"); String linkText = link.text(); System.out.println(linkHref + " , " + linkText); }
- 過濾
使用選擇器語法,可以取得頁面中符合指定條件的元素。例如,使用以下程式碼可以取得所有class 為"s_ipt" 的input 元素:
Elements inputs = document.select("input[class=s_ipt]");
支援的選擇器語法還包括:標籤選擇器、類別選擇器、ID選擇器、屬性選擇器、組合選擇器、偽選擇器等。
4.事件處理
透過JSoup可以方便地處理頁面中的事件。例如,可以使用以下程式碼來取得所需的 input 元素,並為其綁定一個事件監聽器:
Element input = document.select("input[type=text").first(); input.attr("oninput", "console.log('input value has changed')");
5.提交表單
JSoup同樣可以幫助我們提交表單。例如,可以使用以下程式碼完成百度搜尋框的提交:
String url = "https://www.baidu.com/s"; String keyword = "Java"; Document document = Jsoup.connect(url) .data("wd", keyword) .post();
三、總結
本文介紹如何使用JSoup進行Web抓取,以及JSoup的基本使用方法。使用JSoup可以方便地取得頁面元素、過濾、事件處理、提交表單等。當然,使用JSoup需要注意遵守相關法律法規和道德規範,不能以違法亂紀的方式取得他人資訊。
以上是Java API 開發中使用 JSoup 進行 Web 抓取的詳細內容。更多資訊請關注PHP中文網其他相關文章!

深入Java:值得探索的虛擬機世界很多Java開發者在掌握了基礎語法和常用框架後,都希望進一步提升自己的技術�...

EasyExcel模板填充合併單元格時的常見問題在使用EasyExcel進行Excel...

系統對接中的字段映射挑戰及其解決方案在系統對接過程中,經常會遇到需要將一個系統的接口字段映射到另一...

SpringBoot應用中PgJDBC連接池拋出PSQLException:ERROR:cancelingstatementduetouserrequest異常在使用SpringBoot MyBatis-Plus ...

如何優化熱點數據的篩選與同步?在處理大規模數據同步時,如何有效篩選熱點數據成為一個關鍵問題。假設存...

Java虛擬線程與多線程並行:兼容性挑戰在Java編程中,虛擬線程的引入為開發者提供了更高效的並發處理方式。 �...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。