- Jsoup是什么?
Jsoup是一个Java的HTML解析器,可用于从网页中提取和处理数据。
- Jsoup常用的文档方法
① connect方法:建立到指定URL的连接,并返回一个Connection对象
例如:
Connection connection = Jsoup.connect("https://www.example.com");
② get方法:执行HTTP GET请求,并返回HTML
例如:
String html = Jsoup.connect("https://www.example.com").get().html();
③ parse方法:将HTML字符串解析成一个Document对象
例如:
String html = "<html><head><title>Jsoup Example</title></head><body><p>这是Jsoup解析HTML的示例。</p></body></html>";
Document doc = Jsoup.parse(html);
④ select方法:根据CSS选择器选择元素
例如:
String html = "<html><head><title>Jsoup Example</title></head><body><div class='container'><h1>标题</h1><ul><li>选项1</li><li>选项2</li><li>选项3</li></ul></div></body></html>";
Document doc = Jsoup.parse(html);
Elements elements = doc.select(".container ul li");
for (Element element : elements) {
System.out.println(element.text());
}
输出结果为:
选项1
选项2
选项3
- Jsoup解析HTML实例
现在,我们假设有一个简单的网页需要进行解析操作。页面HTML代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Jsoup解析HTML实例</title>
</head>
<body>
<div>
<h1>这是一篇博客文章标题</h1>
<p>
这是一篇博客文章内容。这里包含了一些<a href="#">超链接</a>和一张图片<img src="https://www.example.com/image.jpg" alt="图片说明" />。
</p>
</div>
</body>
</html>
我们现在要从中获取以下信息:
- 标题
- 文章内容
- 超链接
- 图片链接
- 图片说明文字
示例代码如下:
String html = "<!-- 页面 HTML 代码 -->";
Document doc = Jsoup.parse(html);
// 获取标题
String title = doc.title();
System.out.println("标题:" + title);
// 获取文章内容
String content = doc.select("div > p").text();
System.out.println("文章内容:" + content);
// 获取超链接
Elements links = doc.select("a");
for (Element link : links) {
String linkText = link.text();
String linkHref = link.attr("href");
System.out.println("超链接:" + linkText + " -> " + linkHref);
}
// 获取图片链接和说明文字
Elements imgs = doc.select("img");
for (Element img : imgs) {
String imgSrc = img.attr("src");
String imgAlt = img.attr("alt");
System.out.println("图片链接:" + imgSrc);
System.out.println("图片说明文字:" + imgAlt);
}
输出结果如下:
标题:Jsoup解析HTML实例
文章内容:这是一篇博客文章内容。这里包含了一些超链接和一张图片。
超链接:超链接 -> #
图片链接:https://www.example.com/image.jpg
图片说明文字:图片说明
- Jsoup解析HTML文件实例
下面,我们举一个更加实用的例子,假设我们需要从一个HTML文件中提取所有<a>
标签的链接,并将这些链接打印出来。
首先,我们需要有一个HTML文件。我们已经准备了一个简单的example.html
文件,内容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>示例网站</title>
</head>
<body>
<header>
<h1>示例网站标题</h1>
<nav>
<ul>
<li><a href="#">菜单1</a></li>
<li><a href="#">菜单2</a></li>
<li><a href="#">菜单3</a></li>
</ul>
</nav>
</header>
<main>
<article>
<h2>示例文章标题</h2>
<p>这是一篇示例文章内容,其中包含了一些超链接和图片。</p>
<ul>
<li><a href="#">超链接1</a></li>
<li><a href="#">超链接2</a></li>
<li><a href="#">超链接3</a></li>
</ul>
<img src="https://www.example.com/image.jpg" alt="示例图片" />
</article>
</main>
<footer>
<p>版权所有 © 2021 示例网站</p>
</footer>
</body>
</html>
示例代码如下:
File input = new File("example.html");
try {
Document doc = Jsoup.parse(input, "UTF-8");
Elements links = doc.select("a[href]");
for (Element link : links) {
String linkHref = link.attr("href");
System.out.println(linkHref);
}
} catch (IOException e) {
e.printStackTrace();
}
输出结果如下:
#
#
#
#
#
#
https://www.example.com/image.jpg
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Jsoup解析HTML实例及文档方法详解 - Python技术站