用Java编写程序浏览news.baidu.com,选择两篇新闻(包含图片和新闻正文),将HTML源代码分别保存为news1.txt和news2.txt。 观察标题,正文,图片的标签结构,拟定三个pattern正则表达式。 使用正则表达式匹配出三个数据,并print输出。
时间: 2024-10-11 19:17:24 浏览: 25
Java基于Spark2.x新闻网大数据实时分析可视化系统项目源码.zip
在Java中编写程序来爬取并保存网页内容,你需要使用到`java.net`包的`URL`, `HttpURLConnection`以及一些处理HTML内容的库如Jsoup。首先确保已经添加了Jsoup库到项目中。以下是一个基本示例:
```java
import java.io.*;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class NewsScraper {
public static void main(String[] args) throws IOException {
// 指定要抓取的URL
String url = "http://news.baidu.com";
// 创建URL对象并打开连接
URL urlObject = new URL(url);
HttpURLConnection connection = (HttpURLConnection) urlObject.openConnection();
connection.setRequestMethod("GET");
connection.connect();
// 获取响应码,确保请求成功
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
Document doc = Jsoup.parse(connection.getInputStream(), "UTF-8");
// 选择两篇文章,这里假设每篇文章都有标题、正文和图片元素
Elements newsElements = doc.select(".news-item"); // 根据网站CSS选择器更改
for (Element news : newsElements.subSequence(0, 2)) { // 取前两篇
// 提取标题、正文和图片链接
String title = news.select(".title").text(); // 标题选择器
String content = news.select(".content").text(); // 正文选择器,可能需要调整
String imageUrl = news.select(".image a img").attr("src"); // 图片链接选择器
// 将HTML片段保存到文件
saveToTextFile(title + "\n" + content + "\n" + "<img src='" + imageUrl + "' />", "news" + (newsElements.indexOf(news) + 1) + ".txt");
}
} else {
System.out.println("Failed to fetch the page. Response code: " + responseCode);
}
}
private static void saveToTextFile(String html, String fileName) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(fileName))) {
writer.write(html);
} catch (IOException e) {
System.err.println("Error saving file: " + e.getMessage());
}
}
}
```
注意:这个例子假设HTML结构中存在特定的选择器 `.title`, `.content` 和`.image a img` 来匹配标题、正文和图片。实际操作中,你需要查看目标网站的具体HTML结构并相应地调整选择器。
阅读全文