Java解析HTML文本并存入数据库
在现代互联网时代,网页是人们获取信息、交流和娱乐的重要渠道。网页的内容以HTML(超文本标记语言)的形式呈现,因此,开发者经常需要从HTML文本中提取有用的数据并进行处理。
本文将介绍如何使用Java语言解析HTML文本,并将提取到的数据存入数据库。我们将使用Jsoup这个强大的Java HTML解析库,以及MySQL数据库作为示例。
准备工作
在开始之前,我们首先需要确保已经安装了Java开发环境(JDK)和MySQL数据库。还需要添加Jsoup库的依赖。
安装JDK
你可以从Oracle官方网站下载适用于你的操作系统的JDK,并按照安装指南进行安装。可以使用以下命令验证JDK是否安装成功:
java -version
安装MySQL
你可以从MySQL官方网站下载适用于你的操作系统的MySQL,并按照安装指南进行安装。安装完成后,可以使用以下命令验证MySQL是否安装成功:
mysql -V
添加Jsoup依赖
在项目的构建文件(如Maven的pom.xml或Gradle的build.gradle)中,添加以下依赖:
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.3</version>
</dependency>
如果使用Gradle构建项目,可以在dependencies块中添加以下依赖:
implementation 'org.jsoup:jsoup:1.14.3'
添加完依赖后,重新构建项目以使其生效。
使用Jsoup解析HTML
首先,我们需要从一个HTML文本中提取出所需的数据。Jsoup提供了简单而强大的API,使得解析HTML变得非常容易。
假设我们有一个包含书籍信息的HTML文本,如下所示:
<html>
<body>
<div class="book">
<h2>Java编程入门</h2>
<p>作者:张三</p>
<p>价格:99.99</p>
</div>
<div class="book">
<h2>Python深入浅出</h2>
<p>作者:李四</p>
<p>价格:89.99</p>
</div>
</body>
</html>
我们想要提取出每本书的标题、作者和价格。下面是使用Jsoup解析HTML的示例代码:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class HtmlParser {
public static void main(String[] args) {
String html = "<html>\n" +
" <body>\n" +
" <div class=\"book\">\n" +
" <h2>Java编程入门</h2>\n" +
" <p>作者:张三</p>\n" +
" <p>价格:99.99</p>\n" +
" </div>\n" +
" <div class=\"book\">\n" +
" <h2>Python深入浅出</h2>\n" +
" <p>作者:李四</p>\n" +
" <p>价格:89.99</p>\n" +
" </div>\n" +
" </body>\n" +
"</html>";
Document doc = Jsoup.parse(html);
Elements books = doc.select(".book");
for (Element book : books) {
String title = book.select("h2").text();
String author = book.select("p:eq(0)").text().replace("作者:", "");
double price = Double.parseDouble(book.select("p:eq(1)").text().replace("价格:", ""));
// 在这里可以将数据存入数据库
System.out.println("书名:" + title);
System.out.println("作者:" + author);
System.out.println("价格:" + price);
System.out.println("------------------");
}
}
}
运行以上代码,你将会看到如下输出:
书名:Java编程入门
作者:张三
价格:99.99
------------------
书名:Python深入浅出
作者: