Jsoup 是一个用于处理 HTML 的 Java 库,它可以用于解析、提取和操纵 HTML 文档,我们将介绍如何使用 Jsoup 进行代码生成。
我们需要导入 Jsoup 库,在 Maven 项目中,可以在 pom.xml 文件中添加以下依赖:
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.14.3</version> </dependency>
我们将通过一个简单的示例来演示如何使用 Jsoup 进行代码生成,假设我们有一个包含新闻标题和链接的 HTML 页面,我们想要提取这些信息并将其存储在一个 Java 对象中。
我们需要创建一个 Java 类来表示新闻:
public class News { private String title; private String link; // 构造函数、getter 和 setter 省略 }
我们可以使用 Jsoup 来解析 HTML 页面并提取新闻信息,假设我们的 HTML 页面如下:
<!DOCTYPE html> <html> <head> <title>新闻列表</title> </head> <body> <div class="newsitem"> <h2><a href="https://example.com/news/1">新闻标题1</a></h2> </div> <div class="newsitem"> <h2><a href="https://example.com/news/2">新闻标题2</a></h2> </div> <div class="newsitem"> <h2><a href="https://example.com/news/3">新闻标题3</a></h2> </div> </body> </html>
我们可以使用以下代码来提取新闻信息:
import org.jsoup.Jsoup; import 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 static void main(String[] args) { String url = "https://example.com/news"; try { Document document = Jsoup.connect(url).get(); Elements newsItems = document.select(".newsitem"); List<News> newsList = new ArrayList<>(); for (Element newsItem : newsItems) { String title = newsItem.select("h2").text(); String link = newsItem.select("a").attr("href"); News news = new News(title, link); newsList.add(news); } // 输出提取到的新闻信息 for (News news : newsList) { System.out.println("标题: " + news.getTitle() + ", 链接: " + news.getLink()); } } catch (IOException e) { e.printStackTrace(); } } }
在这个例子中,我们首先连接到指定的 URL,然后使用select
方法来选择具有 "newsitem" 类的 HTML 元素,我们遍历这些元素,提取标题和链接,并将其存储在News
对象中,我们将提取到的新闻信息输出到控制台。
至此,我们已经成功地使用 Jsoup 进行了代码生成,我们将回答两个关于 Jsoup 的常见问题。
FAQs
Q1: Jsoup 支持哪些版本的 HTML?
A1: Jsoup 支持 HTML5,并且可以解析大多数现代网页,它还可以清理和规范化 HTML,以便于进一步处理。
Q2: 如何设置 Jsoup 的连接超时时间?
A2: 可以通过Connection.Response
对象的timeout()
方法设置连接超时时间。
Connection connection = Jsoup.connect(url).timeout(10000); // 设置超时时间为 10 秒
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/732665.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复