Java实现新闻爬取并存入数据库
在互联网时代,新闻信息是我们获取资讯的重要渠道之一。为了方便我们对新闻信息进行管理和分析,我们可以编写一个Java程序来实现新闻的爬取,并将抓取到的新闻信息存入数据库中。本文将介绍如何使用Java编程语言实现这一功能。
程序设计
类图
classDiagram
class NewsSpider {
-String url
-Document doc
+void fetchNews()
+void parseNews()
}
class Database {
+void saveNews(News news)
}
class News {
-String title
-String content
+String getTitle()
+String getContent()
}
NewsSpider --> Database
NewsSpider --> News
甘特图
gantt
title 数据爬取与存储任务列表
dateFormat YYYY-MM-DD
section 数据抓取
网页抓取 :done, 2023-10-01, 2d
数据解析 :done, 2023-10-03, 2d
数据存储 :done, 2023-10-05, 2d
代码实现
NewsSpider.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class NewsSpider {
private String url;
private Document doc;
public NewsSpider(String url) {
this.url = url;
}
public void fetchNews() {
try {
doc = Jsoup.connect(url).get();
} catch (IOException e) {
e.printStackTrace();
}
}
public void parseNews() {
Elements newsList = doc.select(".news-list-item");
for (Element news : newsList) {
String title = news.select(".news-title").text();
String content = news.select(".news-content").text();
News news = new News(title, content);
Database.saveNews(news);
}
}
}
News.java
public class News {
private String title;
private String content;
public News(String title, String content) {
this.title = title;
this.content = content;
}
public String getTitle() {
return title;
}
public String getContent() {
return content;
}
}
Database.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Database {
public static void saveNews(News news) {
String sql = "INSERT INTO news (title, content) VALUES (?, ?)";
try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/newsdb", "root", "password");
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, news.getTitle());
pstmt.setString(2, news.getContent());
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
总结
通过以上代码示例,我们实现了一个简单的新闻爬取和存储的功能。我们首先使用Jsoup库来抓取网页上的新闻信息,然后解析出新闻标题和内容,最后将这些信息存入数据库中。这样我们就可以方便地对新闻信息进行管理和分析。希望本文对你有所帮助,谢谢阅读!