Jsoup 是碼生一個(gè)用于處理 HTML 的 Java 庫,它可以用于解析、代碼p代提取和操縱 HTML 文(wen)檔(′?`),碼生我們將介紹如何使用 Jsoup 進(jìn)行代碼生成。代碼p代
(圖片來(lái)源網(wǎng)絡(luò ),碼生侵刪)我們需要導入 Jsoup 庫,代??碼p代在 Maven 項目中,碼生可以在 pom.xml 文件中添加以下(′▽?zhuān)?依賴(lài):
<dependency> <groupId>(′?ω?`);org.jsoup??</groupId(╥_╥)> &l??t;art??ifactId>jsoup</artifactId> <version>1.14.3</version></dependency>我們將通過(guò)一個(gè)簡(jiǎn)單的代碼p代示例來(lái)演示如何使用 Jsoup 進(jìn)行代碼生成,假設我們有一個(gè)包含新聞標題和鏈接的碼生 HTML 頁(yè)面,我們想要提取這些信息并將其存儲在一個(gè) Java 對象中。代碼p代
我們ヽ(′?`)ノ需要創(chuàng )建一個(gè) Java 類(lèi)來(lái)表示新聞:
public clas?s New(′ω`)s { private String title; private String link; // 構造函數、ge??tter 和 setter 省略}我們可以使用 Jsoup 來(lái)解析 HTML 頁(yè)面并提取新聞信息,假設我們的 HTML 頁(yè)面如下:
<!DOCTYPE html??(′ω`)><html><head> <title&??gt;新聞列表</title></head><body>??; <div class="newsitem"> <h2><a href="http( ???)s://exa??mple.com/news/1"??>新聞標題1</a(′?`)></h2> </div> <div class="newsitem"> <h2><a href="https://example.com/news/2">新聞標題2</a></h2> </div> <div class="ne(O_O)wsitem"> <h2><a href="https://example.com/news/3">新聞標題3</a>(′?ω?`);</h2> </div></body></html(╯°□°)╯︵ ┻━┻&??gt;
我們可以使用以下代碼來(lái)提取新聞信息:
import org.jsoup.Jsoup;imp??ort org.jsoup.nodes.Document;import org.jsoup.nodes.(???)Element;import org.jsoup.select.Elements;import java.io.IOException;import java.util.ArrayList;import java.util.List;public class JsoupExample { public sta(′?`)tic void main(String[] args) { String url = "https://example.?com/news"; try { Document document = Jsoup.connect(url).get(); Elements newsItems = document.select(&q??uot;.newsitem"); List<News> newsList = new ArrayList<>(); for (Elem??ent newsItem : newsItems) { String title = newsItem.select(&q??uot;h2").text(); String link = newsItem.select("a").attr("href"); News news = new Ne??ws(title, link); newsList.add(news); } // 輸出提取到的新聞信息 for (News news : newsList) { Sys??tem.out.println("標題:?? " + news.getTitle() + ", 鏈接: " + news.getLink()); } } catch (IOException e) { e.printStackヽ(′ー`)ノTrace(); } }}在這個(gè)例子中,我們首先連接到指定的 URL,然后使用select 方法來(lái)選擇具有 "newsitem" 類(lèi)的 HTML 元素,(′_`)我們遍歷這些(xie)元素,提取標(′ω`)題和鏈接,并將其存儲在News 對象中,我(wo)們將提取到的新聞信息輸出到(′?`*)控制臺。
至此,我們已經(jīng)成功地使用 Jsoup 進(jìn)行了(le)代碼(′▽?zhuān)?生成,我們將回答兩個(gè)關(guān)于 Jsoup 的常見(jiàn)問(wèn)題。
(圖片來(lái)源網(wǎng)絡(luò ),侵刪)FAQ??s
Q1: Jsoup 支持哪些版本的 HTML?
A1(′?ω?`): Jsoup 支持 HTML5,并且可以解析大多數現代網(wǎng)頁(yè),它還可以清理和規范化 HTML,以便于進(jìn)一步處理。
Q2: 如何設置 Jsoup 的連接超時(shí)時(shí)間?
A2: 可以通過(guò)Connection.Response 對象的timeout??() 方法設置連接超時(shí)時(shí)間。
Connection conn??ection = Jsoup.connect(url).timeout(10000); // 設置超時(shí)時(shí)間為 10 秒(圖片??來(lái)源網(wǎng)絡(luò ),侵刪)